谷歌表单,使答案字段只读



我想将Google表单中的一个答案字段设置为只读或隐藏,这样表单收件人就无法修改/查看它。

这可能吗?

这是上下文

因此,基本上,我的最终目标是利用谷歌表单功能向收件人发送调查,并在回复电子表格中跟踪他们的答案。

到目前为止还不错。。。

现在让我向你介绍强加给我的两个约束:

  1. 发送给收件人的表格需要预先填写收件人的一些信息。

  2. 提供给每个收件人以访问表单的Url用于提交并稍后更新表单上提供的答案。

看到第二个约束很棘手。。。通常要做的事情是生成一个预先填写的Url并将其发送给收件人,一旦他们回答了表单,你就可以有一个确认页面,在那里你可以为他们提供一个编辑Url,他们可以使用该Url来更新他们的回答(上一次更新的回答已经预先填写)。

在我的情况下,我无法为他们提供第二个url(编辑url)。这是一次性的:我为每个收件人提供一个url,他们必须能够使用同一个url来回答和更新问题——如果需要的话,稍后再回答。

谷歌不支持此功能,所以我必须编写一个从电子表格中读取的脚本,使用每行中的数据预先填写指定的表格,提交每个表格,然后为每个收件人生成一个编辑Url,然后将其插入电子表格的"编辑Url"列。我现在可以将url提供给收件人,他们可以反复使用该url来更新调查中的答案。

现在回到隐藏/只读字段。在我的电子表格中,每个收件人都有一个唯一的字母数字值。我想把它传递到表格中,这样当他们回答时(答案记录在回复电子表格中),我就能通过这个唯一的"id"来识别每个收件人。

我在这里写了很多文章,但我知道给人们提供背景很重要,这样他们就可以以精确和周到的方式互相帮助。

如何防止用户看到表单的某些部分。

首先创建一个必填问题。所需的问题会阻止用户转到下一页,除非问题得到回答。

设置问题,以便问题的答案只允许用户转到提交页面。

所以,你至少有3页:

  • 输入第1页
  • 将被隐藏的中间页
  • 最后一页是提交页面

您可以设置它,这样用户就不可能访问该中间页面。您创建了一个只有一个选项的必填问题,以转到提交页面。

你可以预先填写所需的问题,并有一个标题,上面写着"仅用于管理目的"或"告诉"他们继续前进。

他们会点击"继续"按钮,它会跳过带有"隐藏"输入的页面,然后直接进入提交页面。

如果他们没有点击"继续"按钮,而是回答了问题,那么它也会转到提交页面,因为问题设置为转到提交页面。无论哪种方式,它都会转到"提交"页面。

更新: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

表单只能包含不用于收集数据的项:

  • 图像项目
  • SectionHeader项目
  • 视频项目,以及
  • PageBreak项目

所有其他项目仅供输入,不能设置为"只读"。

最新更新