Google форма, сделать поле ответа только для чтения

Я хотел бы сделать одно из полей ответа в форме Google только для чтения или скрыто, чтобы получатель формы не смог его изменить/ увидеть .

Это возможно?

вот:

Так что в основном моя конечная цель-использовать Google Forms функциональность для отправки опросов получателям и отслеживать их ответы в таблицы ответ.

пока так хороший...

теперь позвольте мне представить вам 2 ограничения, налагаемые на меня:

  1. формы, отправленные получателям, должны иметь некоторую информацию о получателе, уже предварительно заполненном.

  2. Url, предоставленный каждому получателю для доступа к форме, используется для отправки и последующего обновления ответов, предоставленных в форме.

см. второе ограничение сложно...Общее, что нужно сделать, это создать предварительно заполненный Url отправить это получателю, и как только они ответили на форму, вы можете иметь страницу подтверждения, где вы предоставляете им Изменить Url что они могут использовать, чтобы затем обновить свои ответы (с последним обновленным ответом, уже заполненным).

в моем случае я не могу предоставить им второй url (Url редактирования). Это одноразовая вещь: я предоставляю один url для каждого получателя, и они должны иметь возможность использовать тот же url для ответа и обновления вопрос-позже, если понадобится.

эта функция не поддерживается компанией Google, поэтому мне пришлось написать скрипт, который считывает из таблицы, использовать данные в каждой строке в предварительно заполненные указанной форме, представить каждую форму после создания редактирования URL для каждого получателя, которые я затем вставить в "Редактировать url" колонке моей таблицы. Теперь я могу дать URL-адреса получателям, и они смогут использовать этот url-адрес снова и снова, чтобы обновить свои ответы в обследование.

теперь вернемся к скрытому/только для чтения полю. В моей электронной таблице у меня есть уникальное буквенно-цифровое значение для каждого получателя. Я хочу, чтобы это было передано в форму, чтобы при ответе (ответы записываются в таблицу ответов) я мог идентифицировать каждого получателя по этому уникальному "id".

Я много писал здесь, но я знаю, что важно дать контекст людям, чтобы они все могли помочь друг другу в точной и продуманной форме.

3 ответов


Как удержать пользователя от просмотра частей формы.

сначала вы создаете необходимый вопрос. Требуемый вопрос не позволяет пользователю перейти на следующую страницу, если на вопрос нет ответа.

настройте вопрос так, чтобы ответ на вопрос только позволял пользователю перейти на страницу отправки.

Итак, у вас есть по крайней мере 3 страницы:

  • 1-я страница вход
  • промежуточная страница, которая будет скрытый
  • последняя страница-это страница отправки.

вы можете настроить его так, чтобы пользователь не мог добраться до этой промежуточной страницы. Вы создаете необходимый вопрос, который имеет только один вариант, чтобы перейти на страницу отправки.

и вы можете предварительно заполнить этот необходимый вопрос и иметь заголовок, который гласит: "Только для целей администратора" или что-то, что говорит им просто продолжать двигаться.

они нажмут кнопку" Продолжить", она пропускает страницу с помощью "скрытого" ввода и переходит прямо на страницу отправки.

Если они не нажмут кнопку" Продолжить", но ответят на вопрос, то он также перейдет на страницу отправки, потому что вопрос настроен для перехода на страницу отправки. В любом случае, он переходит на страницу отправки.


Update: Google имеет ограничение в 20 триггеров на скрипт. Это означает, что это решение работает только в сценарии, где генерируется 20 ответов формы или меньше.

наконец, понял это.

сначала создайте форму с опцией множественного выбора. Этот код предполагает, что это первый элемент в форме.

var readonlyValue = 'some unique ID';
var form = FormApp.openById('get the ID from the form in edit mode');
var formResponse = form.createResponse();
items = form.getItems();
var readonlyId = items[0].getId();
var readonlyItem = form.getItemById(readonlyId);
readOnlyItem.asMultipleChoiceItem().setChoiceValues([readonlyValue]); 
formResponse.withItemResponse(readonlyItem.asMultipleChoiceItem().createResponse(readonlyValue));      
formUrl = formResponse.submit().toPrefilledUrl();
//formUrl, now has a link to the form with your unique value: pre-filled and pre-selected

единственные элементы, которые форма может содержать, не предназначены для сбора данных:

все остальные элементы предназначены для ввода и не могут быть сделаны "только для чтения".