Google Forms 应用程序脚本通过 ID 访问元素 - 无响应 - 不会向项目添加选择
Google Forms apps script accessing element by Id - no response - Won't add choices to item
我从绑定到 google 表单的脚本中获得以下片段。我试图添加一个选项,但当我打开表单进行编辑时没有任何反应。所讨论的 MultipleChoice 对象已经有 2 个元素。
function onOpen(e) {
var form = FormApp.getActiveForm();
var ui = FormApp.getUi();
var items = form.getItems();
for (var i in items) {
Logger.log(items[i].getTitle() + ': ' + items[i].getId());
}
var IsNewProject = form.getItemById(2014691452);
var newString = 'hey';
Logger.log(IsNewProject.asMultipleChoiceItem.createChoice(newString))
Logger.log(IsNewProject.asMultipleChoiceItem().getChoices().toString());
//ui.alert("things are ok");
}
日志资料
[16-05-30 16:02:10:107 EDT] Is this a new project?: 2014691452
[16-05-30 16:02:10:124 EDT] Project Title: 1585231066
[16-05-30 16:02:10:147 EDT] Project Description: 15525142
[16-05-30 16:02:10:161 EDT] Project Number: 934022512
[16-05-30 16:02:10:173 EDT] Thematic Priority: 280871288
[16-05-30 16:02:10:186 EDT] Description: 1909468645
[16-05-30 16:02:10:201 EDT] Choice
[16-05-30 16:02:10:226 EDT] Choice,Choice
createChoice()
方法创建一个选项,但不会将其添加到项目中。您需要使用setChoices()
方法,该方法将choices作为参数。
var newString = 'Buy Gadgets';
IsNewProject.setChoices([
IsNewProject.createChoice(newString),
IsNewProject.createChoice('Buy Widgets')
]);
id
参数必须是整数。您正在使用字符串。
目前:
form.getItemById('2014691452');
应该是:
form.getItemById(2014691452);
方法IsNewProject.asMultipleChoiceItem().getChoices()
returns"choices objects"的数组,需要使用getValue()
获取这些选择的值,见doc here
最终代码:
var choices = IsNewProject.asMultipleChoiceItem().getChoices();
for(var n=0 ; n<choices.length ; n++){
Logger.log(choices[n].getValue());
}
我从绑定到 google 表单的脚本中获得以下片段。我试图添加一个选项,但当我打开表单进行编辑时没有任何反应。所讨论的 MultipleChoice 对象已经有 2 个元素。
function onOpen(e) {
var form = FormApp.getActiveForm();
var ui = FormApp.getUi();
var items = form.getItems();
for (var i in items) {
Logger.log(items[i].getTitle() + ': ' + items[i].getId());
}
var IsNewProject = form.getItemById(2014691452);
var newString = 'hey';
Logger.log(IsNewProject.asMultipleChoiceItem.createChoice(newString))
Logger.log(IsNewProject.asMultipleChoiceItem().getChoices().toString());
//ui.alert("things are ok");
}
日志资料
[16-05-30 16:02:10:107 EDT] Is this a new project?: 2014691452
[16-05-30 16:02:10:124 EDT] Project Title: 1585231066
[16-05-30 16:02:10:147 EDT] Project Description: 15525142
[16-05-30 16:02:10:161 EDT] Project Number: 934022512
[16-05-30 16:02:10:173 EDT] Thematic Priority: 280871288
[16-05-30 16:02:10:186 EDT] Description: 1909468645
[16-05-30 16:02:10:201 EDT] Choice
[16-05-30 16:02:10:226 EDT] Choice,Choice
createChoice()
方法创建一个选项,但不会将其添加到项目中。您需要使用setChoices()
方法,该方法将choices作为参数。
var newString = 'Buy Gadgets';
IsNewProject.setChoices([
IsNewProject.createChoice(newString),
IsNewProject.createChoice('Buy Widgets')
]);
id
参数必须是整数。您正在使用字符串。
目前:
form.getItemById('2014691452');
应该是:
form.getItemById(2014691452);
方法IsNewProject.asMultipleChoiceItem().getChoices()
returns"choices objects"的数组,需要使用getValue()
获取这些选择的值,见doc here
最终代码:
var choices = IsNewProject.asMultipleChoiceItem().getChoices();
for(var n=0 ; n<choices.length ; n++){
Logger.log(choices[n].getValue());
}