【发布时间】:2018-04-15 01:06:28
【问题描述】:
我正在尝试找到一种方法来记录调查参与者单击不同选项的顺序,同时能够确定在参与者第二次加载同一页面后是否发生了点击。例如,假设我首先单击选项 1、3、4,然后导航到上一页并返回,选中选项 5 并取消选中 4,然后选择“下一步”。我想得到类似1|3|5|back|5|4|next 的东西。
我为此目的写下的当前代码如下:
Qualtrics.SurveyEngine.addOnload(function() {
var reasonOrder = "${e://Field/reasonOrder}";
this.questionclick = function(event,element){
if (element.type == 'checkbox')
{
reasonOrder = reasonOrder + "|" + element.id.split('~')[2];
Qualtrics.SurveyEngine.setEmbeddedData('reasonOrder', reasonOrder);
}
}
});
Qualtrics.SurveyEngine.addOnPageSubmit(function(type) {
//var reasonOrder = "${e://Field/reasonOrder}";
if (type == "next"){
reasonOrder = reasonOrder + "|next|";
Qualtrics.SurveyEngine.setEmbeddedData('reasonOrder', reasonOrder);
}
else if (type == "prev"){
reasonOrder = reasonOrder + "|prev|";
Qualtrics.SurveyEngine.setEmbeddedData('reasonOrder', reasonOrder);
}
});
但是,当前代码似乎完全忽略了addOnload 函数中的所有内容,只执行了第二部分。
我尝试通过使用两个不同的嵌入字段(reasonOrder 和choiceOrder)分别执行这两个部分并执行以下操作:
Qualtrics.SurveyEngine.addOnload(function()
{
/*Place your JavaScript here to run when the page loads*/
var reasonOrder = "${e://Field/reasonOrder}";
this.questionclick = function(event,element){
if (element.type == 'checkbox')
{
reasonOrder = reasonOrder + "|" + element.id.split('~')[2];
Qualtrics.SurveyEngine.setEmbeddedData('reasonOrder', reasonOrder);
}
}
});
Qualtrics.SurveyEngine.addOnPageSubmit(function(type){
var choiceOrder = "${e://Field/reasonOrder}";
if (type == "next"){
choiceOrder = choiceOrder + "|next|";
}
else{
choiceOrder = choiceOrder + "|prev|";
}
Qualtrics.SurveyEngine.setEmbeddedData('choiceOrder', choiceOrder);
});
但是这个版本只记录第一次交互中发生的一切,即如果一个人回到同一页面,他/她的动作不会被记录下来。
我应该如何更改代码来记录我需要的点击流?谢谢!
【问题讨论】:
标签: javascript click submit qualtrics