我目前正在进行Qualtrics调查,受访者必须解决一长串字谜,然后回答一些人口统计问题。
为了简化字谜部分,我使用了“循环并合并”块:第一个字段是要解决的字谜,第二个字段是字谜的解决方案,因此调查可以针对受访者回答问题的答案。每个字谜的解决方案。
事实如此,该调查运行良好:但是,我想允许受访者过早退出循环,方法是在响应字段中键入“EXIT”,然后将其重定向到下一个问题块(人口统计问题)。
通常,这是使用“跳过”逻辑实现的:但是,跳到块的末尾并不能解决问题(循环重新启动)。我设法将他们重定向到调查的结尾,但没有重定向到人口统计学问题。
有没有一种方法可以使用JavaScript来跳到人口统计数据块或退出循环并过早合并数据块?我是否缺少可以解决问题的Qualtrics选项?
最佳答案
如果这仍然与您相关:我需要相同的功能,并且这是我解决的方法:首先,定义一个帮助程序变量,将其称为EndLoop
,将其初始化为0。然后设置一个函数以更改人们按下按钮后EndLoop变为1,此外,我在循环中向问题添加了显示逻辑,仅当EndLoop仍为0时才显示它们,并在EndLoop为1时隐藏问题。
这是一个分步说明以及javascript和html代码。
大胆的事情是您需要做的,项目符号指向更详细的说明。
1.在循环合并define an embedded data field之前,将其称为EndLoop
,并将其初始化为0。
2.对于循环set a display logic中的每个项目,以条件为“EndLoop” = 0来显示它们
EndLoop
+选择“等于” +输入0作为值3.将自定义按钮插入人们应该可以选择退出的页面。 该按钮在onclick上运行一个名为setEndLoop()的用户定义函数。
<input id="css-class-mybutton" onclick="setEndLoop()" value=" done " type="button">
value = " done "
4.使用自定义javascript定义函数setEndLoop(),将EndLoop的值更改为1并模拟一个下一步按钮,单击
我使用的代码是:
/* 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中使用.css-class-mybutton{ ... }
。希望能有所帮助。