如果这仍然与您相关:我需要相同的功能,这就是我解决它的方法:首先,我定义一个辅助变量,调用它EndLoop
,我将其初始化为 0。然后我设置一个函数来更改 EndLoop 的值在人们按下按钮后为 1,另外我在循环中的问题中添加了一个显示逻辑,仅当 EndLoop 仍然为 0 时才显示它们,并在 EndLoop 为 1 时隐藏问题。
这是一个分步说明以及 javascript 和 html 代码。
粗体字是你需要做的,要点是更详细的说明如何去做。
1. 在你的循环和合并之前定义一个名为的嵌入数据字段EndLoop
并将其初始化为 0。
- 转到调查流程面板
- 添加新元素 > 选择嵌入数据字段
- 将字段命名为“EndLoop”
- 通过单击“立即设置值”链接将其值 t0 设置为数字 0
- 确保在合并循环块之前移动它
2. 为循环中的每个项目设置一个显示逻辑,以在 'EndLoop' = 0 条件下显示它们
- 转到循环中每个问题的选项菜单
- 选择“添加显示逻辑”
- 从第一个下拉菜单中选择“嵌入数据”
- 新类型字段打开 > 作为名称类型
EndLoop
+ 选择“等于” + 类型 0 作为值
3. 在人们应该能够选择退出的页面中插入一个自定义按钮。该按钮运行一个名为 setEndLoop() onclick 的用户定义函数。
4.使用自定义javascript定义函数setEndLoop()将EndLoop的值更改为1并模拟下一步按钮点击
- 转到循环中每个问题的选项菜单
- 选择“添加 JavaScript”
我使用的代码是:
/* Get the EndLoop variable */
var EndLoop = "${e://Field/EndLoop}";
Qualtrics.SurveyEngine.addOnload(function(){
/* hide previous and next button */
$('NextButton') && $('NextButton').hide();
$('PreviousButton') && $('PreviousButton').hide();
/* Function: on click on user-defined button -> change the field EndLoop */
var that = this;
setEndLoop = function(){
Qualtrics.SurveyEngine.setEmbeddedData('EndLoop', 1);
that.clickNextButton();
};
});
该按钮将没有默认样式,因此,定义一个自定义 css 来设置您的按钮样式,使其看起来像您的主题的按钮。我在这里使用的按钮的类名是id="css-class-mybutton"
,.css-class-mybutton{ ... }
在 css 中使用。
希望有帮助。