循环在 Google Apps Sripts 的 MultipleChoiceItem 中动态添加更多选择

问题描述 投票:0回答:1

我正在尝试从 Google 表格构建我的第一个 Google 表单,但我遇到了一些问题。我想做的是添加选择到MultipleChoiceItem,但是动态,因为我事先无法知道选择的数量。

我已经尝试过这段代码并且有效:

//This Works
var preguntaQuienEres = form.addMultipleChoiceItem();
preguntaQuienEres.setTitle('¿Quién eres?').isRequired();

preguntaQuienEres.setChoices([
   preguntaQuienEres.createChoice(nombresAlumnos[0], form.getItemById(saltosDeSeccion[0]).asPageBreakItem()),
   preguntaQuienEres.createChoice(nombresAlumnos[1], form.getItemById(saltosDeSeccion[0]).asPageBreakItem()),
])

但是,如果我尝试添加单个选项,它只会删除所有内容并设置最后一个选择。

//This doesn't work
preguntaQuienEres.setChoices([
   preguntaQuienEres.createChoice(nombresAlumnos[0], form.getItemById(saltosDeSeccion[0]).asPageBreakItem()),
])
preguntaQuienEres.setChoices([
   preguntaQuienEres.createChoice(nombresAlumnos[1], form.getItemById(saltosDeSeccion[0]).asPageBreakItem()),
])

这是有道理的,但我无法控制它。 所以,看起来我必须建立一个选择列表,然后 setChoices(list),但它不起作用。我已经通过论坛中的示例尝试了很多方法,但仍然不起作用。 我最后的方法是这样的: nombresAlumnos:包含学生姓名。 saltosDeSeccion:具有 PageBreaks 的 ID。

var preguntaQuienEres = form.addMultipleChoiceItem();
preguntaQuienEres.setTitle('¿Quién eres?').isRequired();

var choices = [];
  for (var i = 0; i < nombresAlumnos.length; i++) {
    choices.push(preguntaQuienEres.createChoice(nombresAlumnos[i], form.getItemById(saltosDeSeccion[i]).asPageBreakItem()));
  }
  preguntaQuienEres.setChoiceValues(choices);

例如,我已经尝试过这个post,但我在文档中找不到 asMultipleChoiceItem 了。 我不懂这个。

提前非常感谢您的帮助。

google-apps-script google-forms multiple-choice
1个回答
0
投票

我找到了解决方案。

preguntaQuienEres.setChoice(选择);

而不是

preguntaQuienEres.setChoiceValues(选择);

© www.soinside.com 2019 - 2024. All rights reserved.