Google 表单,将答案字段设置为只读
Google Form, make answer field readonly
我想将 Google 表单中的答案字段之一设置为只读或隐藏,以便表单收件人无法修改/查看它。
这可能吗?
这里是上下文:
所以基本上我的最终目标是利用 Google Forms functionality to send surveys to recipients and track theirs answers in a response spreadsheet。
目前一切顺利...
现在让我向您介绍强加给我的两个限制:
发送给收件人的表格需要预先填写一些关于收件人的信息。
为访问表单而提供给每个收件人的 Url 用于提交和稍后更新表单上提供的答案。
看到第二个约束很棘手...通常要做的是生成一个 pre-filled Url send that to the recipient and once they've answered the form you can have a confirmation page where you provide them with a Edit Url,他们可以用它来更新他们的答案(最后更新的答案已经预先填写)。
就我而言,我无法向他们提供第二个 url(编辑 Url)。这是一次性的事情:我为每个收件人提供一个 url,他们必须能够使用相同的 url 来回答和更新问题——如果他们需要,可以在以后的时间使用.
Google 不支持此功能,所以我不得不编写一个脚本,从电子表格中读取数据,使用每一行中的数据预填指定的表格,提交每个表格,然后生成一个为每个收件人编辑 Url,然后我将其插入电子表格的 "edit url" 列。我现在可以将 url 提供给收件人,他们将能够一遍又一遍地使用 url 来更新他们在调查中的答案。
现在回到 hidden/readonly 领域。在我的电子表格中,每个收件人都有一个唯一的字母数字值。我希望将其传递给表单,以便当他们回答时(答案记录在回复电子表格中)我将能够通过这个唯一的 "id".
来识别每个收件人
我在这里写了很多,但我知道为人们提供背景信息很重要,这样我们才能以准确周到的方式互相帮助。
表单可以包含的唯一不用于收集数据的项目是:
所有其他项目用于输入,无法制作"read only"。
如何防止用户看到部分表单。
首先,您创建一个必填问题。必填问题会阻止用户转到下一页,除非问题得到回答。
设置问题,让问题的答案只允许用户转到提交页面。
那么,您至少有 3 页:
- 第一页已输入
- 一个将被隐藏的中间页面
- 最后一页是提交页面。
您可以设置它,使用户无法到达该中间页面。您创建了一个必填问题,该问题只有一个选项,用于转到提交页面。
您可以预先填写必填问题,并在标题中注明 "For admin purposes only" 或告诉他们继续前进的内容。
他们将单击 "Continue" 按钮,它会跳过带有 "hidden" 输入的页面,并直接转到提交页面。
如果他们不点击"Continue"按钮,而是回答了问题,那么也会进入提交页面,因为问题设置为进入提交页面。无论哪种方式,它都会转到“提交”页面。
更新: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
我想将 Google 表单中的答案字段之一设置为只读或隐藏,以便表单收件人无法修改/查看它。
这可能吗?
这里是上下文:
所以基本上我的最终目标是利用 Google Forms functionality to send surveys to recipients and track theirs answers in a response spreadsheet。
目前一切顺利...
现在让我向您介绍强加给我的两个限制:
发送给收件人的表格需要预先填写一些关于收件人的信息。
为访问表单而提供给每个收件人的 Url 用于提交和稍后更新表单上提供的答案。
看到第二个约束很棘手...通常要做的是生成一个 pre-filled Url send that to the recipient and once they've answered the form you can have a confirmation page where you provide them with a Edit Url,他们可以用它来更新他们的答案(最后更新的答案已经预先填写)。
就我而言,我无法向他们提供第二个 url(编辑 Url)。这是一次性的事情:我为每个收件人提供一个 url,他们必须能够使用相同的 url 来回答和更新问题——如果他们需要,可以在以后的时间使用.
Google 不支持此功能,所以我不得不编写一个脚本,从电子表格中读取数据,使用每一行中的数据预填指定的表格,提交每个表格,然后生成一个为每个收件人编辑 Url,然后我将其插入电子表格的 "edit url" 列。我现在可以将 url 提供给收件人,他们将能够一遍又一遍地使用 url 来更新他们在调查中的答案。
现在回到 hidden/readonly 领域。在我的电子表格中,每个收件人都有一个唯一的字母数字值。我希望将其传递给表单,以便当他们回答时(答案记录在回复电子表格中)我将能够通过这个唯一的 "id".
来识别每个收件人我在这里写了很多,但我知道为人们提供背景信息很重要,这样我们才能以准确周到的方式互相帮助。
表单可以包含的唯一不用于收集数据的项目是:
所有其他项目用于输入,无法制作"read only"。
如何防止用户看到部分表单。
首先,您创建一个必填问题。必填问题会阻止用户转到下一页,除非问题得到回答。
设置问题,让问题的答案只允许用户转到提交页面。
那么,您至少有 3 页:
- 第一页已输入
- 一个将被隐藏的中间页面
- 最后一页是提交页面。
您可以设置它,使用户无法到达该中间页面。您创建了一个必填问题,该问题只有一个选项,用于转到提交页面。
您可以预先填写必填问题,并在标题中注明 "For admin purposes only" 或告诉他们继续前进的内容。
他们将单击 "Continue" 按钮,它会跳过带有 "hidden" 输入的页面,并直接转到提交页面。
如果他们不点击"Continue"按钮,而是回答了问题,那么也会进入提交页面,因为问题设置为进入提交页面。无论哪种方式,它都会转到“提交”页面。
更新: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