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());
}