我有this form:
如果您看到列表项目 - 学生姓名和成绩将从Google表格填充。
我现在要做的是选择列表项目等级,只显示那些属于“选择学生”选择中属于该特定等级的学生...
怎么做呢,因为form只有两个触发器:onOpen和onEdit?
答案 0 :(得分:2)
据我所知,Google Forms中不存在此类客户端事件。 Google Apps脚本的脚本编制机制专为创建表单和其他文档而设计,但对于客户端功能而言并未达到很远。
我建议您将表单拆分为多个页面并使用“转到基于答案的页面”功能来实现所需的功能。
使用form.addPageBreakItem()
创建页面并使用item.createChoice(value, PageBreakItem)
导航到正确的页面。
参考文献:
答案 1 :(得分:1)
修改:由于后续评论中的其他信息,问题已经澄清,并归结为:“当用户在Google表单中进行选择时,是吗?可以自定义该表单上其他问题的选项吗?“
答:不。请参阅Dynamically edit multiple choice options in live Google Form using Apps Script。
原始答案 - 这解释了在编辑这些选项(电子表格)的来源时如何更改表单中显示的选项。
如果您的数据位于Google Spreadhsheet中,则源电子表格中的onEdit
或onChange
触发器将能够响应名称和成绩列表中的更改。
onChange
触发器是“可安装的”,并且能够执行简单onEdit
无法执行的操作,例如修改表单,因此在这种情况下它将是更好的选择。
在触发器功能中,使用FormsApp.openById()
或FormsApp.openByUrl()
,然后使用item.setChoices()
更新上一个项目选项,从电子表格中读取值,就像创建表单时一样。< / p>
对于奖励分数...而不是盲目地覆盖选择,您可以阅读现有选项并仅在更改时更新它们。
警告 - 在频繁更改的工作表或长列表中,此触发器的计算成本很高。您可能会发现自己遇到了Google的处理限制。