You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用GAS维护Google表单跳转规则时报错:list.createChoice is not a function

问题分析与修复方案

错误根源

你代码里的list1是选项值的数组,而createChoice()是MultipleChoiceItem对象的专属方法,数组没有这个方法,所以触发TypeError。另外list是所有多选项目的数组,不能直接调用setChoices(),必须操作单个多选项目实例。

修复后的代码

function GoToPage() {
  var form = FormApp.openById('你的表单ID');

  // 获取目标多选问题的实例(第一个多选项目)
  var mcItem = form.getItems(FormApp.ItemType.MULTIPLE_CHOICE)[0].asMultipleChoiceItem();
  // 获取当前多选问题的所有选项值
  var choiceValues = mcItem.getChoices().map(choice => choice.getValue());

  // 获取对应的分页跳转目标
  var pagelist = form.getItems(FormApp.ItemType.PAGE_BREAK);
  // 根据实际表单分页位置调整索引,以下对应4个选项的跳转目标
  var pagebreak01 = pagelist[2].asPageBreakItem();
  var pagebreak02 = pagelist[3].asPageBreakItem();
  var pagebreak03 = pagelist[4].asPageBreakItem();
  var pagebreak04 = pagelist[5].asPageBreakItem();

  // 创建带跳转规则的选项数组
  var choices = [];
  choices.push(mcItem.createChoice(choiceValues[0], pagebreak01));
  choices.push(mcItem.createChoice(choiceValues[1], pagebreak02));
  choices.push(mcItem.createChoice(choiceValues[2], pagebreak03));
  choices.push(mcItem.createChoice(choiceValues[3], pagebreak04));

  // 给多选问题设置新的选项(包含跳转规则)
  mcItem.setChoices(choices);
}

关键修正点

  • 用mcItem(多选项目实例)调用createChoice(),而非选项值数组choiceValues
  • 直接对单个多选项目实例调用setChoices(),而非多选项目数组
  • 补充了第四个选项的跳转设置(匹配你提到的四个选项需求)

额外注意事项

  1. 务必把openById的参数替换成你的实际表单ID
  2. 分页索引(pagelist[2]等)需要根据你表单的实际分页位置调整,避免索引越界
  3. 可以给这个函数设置自动触发器,在Form Ranger填充完成后自动运行,维持跳转设置

内容的提问来源于stack exchange,提问作者秋意寒

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 19:48:47