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

使用Apps Script实现表单提交功能的问题

问题分析与解决方案

你的问题核心是没有正确将提交导航绑定到表单项目上——你只是写出了FormApp.PageNavigationType.SUBMIT这个常量,但没有通过对应方法把它应用到grid item之后的流程中。当前代码里所有页面元素是依次串联的,用户填完一个grid后会自动跳到下一个页面,而非提交。

修正后的代码

function myFunction() {
  var form = FormApp.create('Scores Form').setDescription('Description');
  var item = form.addMultipleChoiceItem();
  const createChoiceArray = [];
  const pageConfig = {'page-one':['row-one','row-two'],'page-two':['row-one','row-two'],'page-three':['row-one','row-two']};

  for(const pageKey in pageConfig){
    const rowItems = pageConfig[pageKey];
    // 添加页面分隔符,作为单选选项的跳转目标
    const pageBreak = form.addPageBreakItem().setTitle(pageKey);
    // 创建grid评分项
    const gridItem = form.addGridItem()
      .setTitle(`Scores for ${pageKey}`)
      .setRequired(true)
      .setColumns(['Did not attend', 'slightly/not engaged in activity','moderately engaged in activity', 'very engaged in activity'])
      .setRows(rowItems);
    
    // 关键修改:设置grid项填写完成后直接提交表单
    gridItem.setGoToPage(FormApp.PageNavigationType.SUBMIT);
    
    // 将单选选项与对应页面分隔符绑定
    createChoiceArray.push(item.createChoice(pageKey, pageBreak));
  }

  // 给单选项设置所有选项
  item.setChoices(createChoiceArray);
}

关键修改说明

  • 绑定提交导航到grid项:在每个gridItem创建完成后,调用setGoToPage(FormApp.PageNavigationType.SUBMIT),这会让用户填写完当前grid后直接触发表单提交,不会继续跳转后续页面。
  • 规范变量声明:把create_choice_array改成createChoiceArray并使用const声明,避免全局变量泄漏。
  • 简化字符串拼接:用模板字符串${pageKey}替代concat,代码更简洁直观。

修改后,用户选择任意单选选项跳转到对应页面,填写完grid后就会直接提交表单,完全符合你的需求。

内容的提问来源于stack exchange,提问作者waluigiwah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 16:46:14