谷歌表格,只读回答字段

问题描述 投票:7回答:3

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

那可能吗?

这是上下文:

所以基本上我的最终目标是利用Google Forms功能向收件人发送调查并在response spreadsheet中跟踪他们的答案。

到现在为止还挺好...

现在让我向您介绍两个强加于我的限制:

  1. 发送给收件人的表单需要有一些已预先填写的收件人信息。
  2. 提供给每个收件人以访问表单的URL用于提交并稍后更新表单上提供的答案。

看到第二个约束是棘手的...常见的事情是生成一个pre-filled Url发送给收件人,一旦他们回答了表单,你可以有一个确认页面,在那里你提供他们可以使用的Edit Url然后更新他们的答案(最后更新的答案已经预先填写)。

就我而言,我无法为他们提供第二个网址(编辑网址)。这是一次性的事情:我为每个收件人提供一个网址,他们必须能够使用相同的网址来回答和更新问题 - 如果他们需要,可以在以后再次使用。

Google不支持此功能,因此我必须编写一个从电子表格中读取的脚本,使用每行中的数据预先填写指定的表单,提交每个表单,然后为每个收件人生成一个编辑网址,然后我插入在我的电子表格的“编辑网址”列中。我现在可以将网址提供给收件人,他们将能够一遍又一遍地使用该网址来更新他们在调查中的答案。

现在回到隐藏/只读字段。在我的电子表格中,我为每个收件人提供了唯一的字母数字值。我希望将其传递给表单,以便当他们回答(答案记录在响应电子表格中)时,我将能够通过这个唯一的“id”识别每个收件人。

我在这里写了很多,但我知道为人们提供背景是很重要的,这样他们才能以精确和深思熟虑的方式互相帮助。

google-apps-script google-form
3个回答
8
投票

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

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

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

所以,你至少有3页:

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

您可以对其进行设置,以便用户无法访问该中间页面。您创建一个必需的问题,只有一个选项,转到提交页面。

并且你可以预先填写所需的问题,并且有一个标题,说明“仅用于管理目的”或者告诉他们继续移动的东西。

他们将点击“继续”按钮,它会使用“隐藏”输入跳过页面,然后直接进入“提交”页面。

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


4
投票

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

2
投票

表单可以包含的不用于收集数据的唯一项目是:

所有其他项目用于输入,不能“只读”。

© www.soinside.com 2019 - 2024. All rights reserved.