如何使用脚本编辑器在Google表单中输入问题选择的验证?



我希望当有人试图填写复选框时,复选框会根据当天的时间自动取消选中。

下面是我的代码:'
function myFunction() {
var myForm = FormApp.getActiveForm();
var title = myForm.getId();
var choicesArray = [];
var item = myForm.getItemById('xxxxxxxx').asCheckboxItem(); // xxxxxx is whatever the id is 
var choices = item.getChoices();
var d = new Date();
choices.forEach(function(a) {
if (a.checked == true && a.getValue() == "First")
if (d.getHours() >= 17)
a.checked = false;
if (a.checked == true && a.getValue() == "Second")
if (d.getHours() < 17)
a.checked = false;
});
}

'创建触发器后什么都没有发生,我能够选择这两个不应该发生的复选框。也不能触发触发器。

如果这是不可能的,那么如何删除第二个选择,只显示另一个?

问题是你在if后面放了分号。

去掉分号&将语句放在if之后,而不是下一行。

function myFunction() {
var myForm = FormApp.getActiveForm();
var title = myForm.getId();
var choicesArray = [];
var item = myForm.getItemById('xxxxxxxx').asCheckboxItem(); // xxxxxx is whatever the id is 
var choices = item.getChoices();
var d = new Date();
choices.forEach(function(a) {
if (a.checked == true && a.getValue() == "First")
if (d.getHours() >= 17); // <--- remove ;
a.checked = false;
if (a.checked == true && a.getValue() == "Second")
if (d.getHours() < 17); // <--- remove ;
a.checked = false;
});
}
function myFunction() {
var myForm = FormApp.getActiveForm();
var title = myForm.getId();
var choicesArray = [];
var item = myForm.getItemById('xxxxxxxx').asCheckboxItem(); // xxxxxx is whatever the id is 
var d = new Date();
item.setChoices([item.createChoice(d.getHours() > 11 ? "first" : "second")]);  
});
}

然后运行将触发器设置为每分钟运行一次,否则如果设置为onOpen,它将只运行具有编辑权限的人,而不是所有人。

感谢@Tanaike的帮助!

最新更新