我没有使用Google脚本创建了一个表单,然后制作了一个脚本来通过ID打开该表单。我想知道是否可以向表单上的第二个复选框问题添加复选框选择。 因此,我想到的是在另一个函数中,我将创建选项,并将其传递给addOption。我的工作方式有效,但它取代了我先前添加到项目中的任何内容。我想现在的问题是,如何在不替换前一个选项的情况下添加更多选项。
function addOption(option) {
var a = form.getItems(FormApp.ItemType.CHECKBOX)[1].asCheckboxItem();
a.setChoiceValues(option);
}
答案 0 :(得分:0)
注意:假设您只想向现有选项中添加一个选项。
您的代码中的问题是您使用函数setChoicesValues()[1]来用新选项覆盖所有先前的选项。首先,您需要获取choices数组,将新选项添加到该数组,然后将新choices数组设置为CheckboxItem。
另一件事是,在这种情况下,最好使用setChoices [1]而不是setChoicesValues [1],因为setChoicesValues与String数组一起使用,并且从getChoices [1]中获得的是Choice数组。因此,基本上,创建新的Choice对象并将其添加到Choice数组中比遍历Choices数组,获取每个Choice的字符串并以此创建一个字符串Array(并添加新的字符串Choice)要容易得多。>
我对您的代码进行了一些调整,测试并成功运行:
function addOption() {
var form = FormApp.openById('XXXXX');
var option = "IT WORKS";
var a = form.getItems(FormApp.ItemType.CHECKBOX)[1].asCheckboxItem();
//Create the choice object
var option = a.createChoice(option);
//Get all the choices and add the new one to the array
var options = a.getChoices();
options.push(option);
//Set the new choices using the Choice array
a.setChoices(options);
}
我将option变量用作字符串,然后创建了Choice对象,如果您已经将option参数作为Choice对象传递了,则应该删除该行。
[1] https://developers.google.com/apps-script/reference/forms/checkbox-item