在我提出问题之前,我想指出我是法国人,所以我的英语可能不好。如果我的问题得不到解决,我会尝试以更好的方式解释它。
我目前正在开发一个用于创建表单的Google脚本。在这种形式中,我想问受访者几个多项选择题。 为了获得良好和具体的结果,我想根据受访者的个人资料调整我提出的问题。
要明确这是我的表单的形状: 我首先向受访者提出第5个可能答案的第一个问题。在答案后,被访者将被引导到新的页面。 在这个新页面上,有一个新的多项选择题,有2个可能的答案。再一次,根据答案,被访者必须被引导到一个新页面等等...... 最后,当我得到我想要的所有细节时,我会向受访者提出准确的问题。 最后一页是一个包含大量多项选择题的页面,所有受访者都必须回答,不依赖于他们的个人资料。
我试图用谷歌脚本这样写:
var page1 = form.addPageBreakItem()
.setTitle('First page');
var item = form.addMultipleChoiceItem();
item.setTitle('Question')
.setChoices([
item.createChoice('Yes',page2),
item.createChoice('No',page3)
]);
var page2 = form.addPageBreakItem()
.setTitle('Second page');
var page3 = form.addPageBreakItem()
.setTitle('Third page');
但是,由于page2和page3是在page1之后定义的,因此脚本不理解它,并且在答案时无法跳转到page3或page2。 我已经尝试先定义我的所有页面,但后来我不知道如何将我的多个答案问题添加到特定页面中。
有人能给我一个提示吗? 无论如何,感谢阅读,如果不清楚,请不要犹豫要求更多解释
答案 0 :(得分:5)
您只需要更改操作的顺序;您不需要将item
上的操作保持在一起。以下是使用您的代码的示例:
function createForm() {
var title = 'Multipage Form Test';
var description = 'Stackoverflow question 17083500';
var form = FormApp.create(title)
.setDescription(description)
.setConfirmationMessage('Thanks for responding!');
var page1 = form.addPageBreakItem()
.setTitle('First page');
var item = form.addMultipleChoiceItem();
var page2 = form.addPageBreakItem()
.setTitle('Second page');
var page3 = form.addPageBreakItem()
.setTitle('Third page');
item.setTitle('Question')
.setChoices([
item.createChoice('Yes',page2),
item.createChoice('No',page3)
]);
Logger.log(form.getEditUrl());
Logger.log(form.getPublishedUrl());
}
从日志中复制“编辑网址”,然后检查 - 您会发现该表单具有您要查找的行为: