使用 Apps 脚本实现提交表单时出现问题

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

我有一个以一个多项选择项开头的表格,根据选择的每个答案,将转到特定页面供他们填写网格项。

对于第一个多项选择题,您只能为此项目选择一个答案。一旦选择,用户将被带到特定页面并且用户填写网格项。他们填写网格项目后,我希望他们从此页面提交表单。然而事实并非如此

代码会根据需要导航到正确的页面,但根据第一个多项选择题,有一定数量的页面可以单击“下一步”并访问其他页面。

例如第一项有3个多项选择答案,选择选项1将进入选项1,然后是选项2,然后是选项3然后提交。选择选项 2 会将您带到选项 2,然后选择选项 3,然后提交。选择选项 3 会将您带到选项 3,然后提交。我希望它在每个选项之后提交。

function myFunction() {

var form = FormApp.create('Scores Form').setDescription('Description');
var item = form.addMultipleChoiceItem();
create_choice_array = []
var dict = {'page-one':['row-one','row-two'],'page-two':['row-one','row-two'],'page-three':['row-one','row-two']}
for(var key in dict){
  var value = dict[key];
  var team_ex = form.addPageBreakItem().setTitle(key);
  var griditem = form.addGridItem()
  .setTitle("Scores for ".concat(" ",key))
  .setRequired(true)
  .setColumns(['Did not attend', 'slightly/not engaged in activity','moderately engaged in activity', 'very engaged in activity'])
  .setRows(value);
  create_choice_array.push(item.createChoice(key,team_ex));
  //the line of code below does not work as desired
  //FormApp.PageNavigationType.SUBMIT;
}
item.setChoices([create_choice_array.pop(),create_choice_array.pop(),create_choice_array.pop()]);
//the line of code below does not work as desired
//FormApp.PageNavigationType.SUBMIT;
}

为了让提交表单发生在正确的位置,我在for循环中编写了这行代码,然后在for循环之后尝试了它,但没有任何改变。

FormApp.PageNavigationType.SUBMIT;

我是否将 PageNavigationType 放置在代码的错误部分?我没有正确访问这些项目吗?谢谢。我尝试改编这两篇文章中的一些知识,但我迷失了,这是我第一次使用应用程序。 如何让 PageNavigationType 通过循环工作 在 Google 表单中设置为某个部分、下一个部分或提交表单的选项

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

将多项选择问题的答案直接指向特定页面/部分,并在回答这些问题后提交表格。 OP 代码已基本完成。缺少的元素是:

将多项选择设为“必填”

  • 现有线路:
    var item = form.addMultipleChoiceItem()
  • 修改行:
    var item = form.addMultipleChoiceItem().setTitle("My Multiple Choice question").setRequired(true)

分配

setGoToPage

现有线路:

var team_ex = form.addPageBreakItem().setTitle(key)
var griditem = form.addGridItem()

修改行:

var team_ex = form.addPageBreakItem().setTitle(key);
team_ex.setGoToPage(FormApp.PageNavigationType.SUBMIT); // At end of page , submit form
var griditem = form.addGridItem()

完成修改后的脚本

function buildForm() {

  var form = FormApp.create('Scores Form').setDescription('so_78498057')
  var item = form.addMultipleChoiceItem().setTitle("My Multiple Choice question").setRequired(true)
  create_choice_array = []
  var dict = {'page-one':['row-one','row-two'],'page-two':['row-one','row-two'],'page-three':['row-one','row-two']}
  for(var key in dict){
    var value = dict[key];
    var team_ex = form.addPageBreakItem().setTitle(key);
    team_ex.setGoToPage(FormApp.PageNavigationType.SUBMIT); // At end of page , submit form
    var griditem = form.addGridItem()
    .setTitle("Scores for ".concat(" ",key))
    .setRequired(true)
    .setColumns(['Did not attend', 'slightly/not engaged in activity','moderately engaged in activity', 'very engaged in activity'])
    .setRows(value);
    create_choice_array.push(item.createChoice(key,team_ex));
  }
  item.setChoices([create_choice_array.pop(),create_choice_array.pop(),create_choice_array.pop()]);
}

参考文献

分页项

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