在 Qualtrics 中分别记录页面导航前后的选择
Separately record choices before and after page navigation in Qualtrics
我想找到一种方法来记录调查参与者点击不同选项的顺序,同时能够识别点击是否发生在参与者第二次加载同一页面之后。例如,假设我首先单击选项 1、3、4,然后导航到上一页并返回,选中选项 5 并取消选中 4,然后选择 "next"。我想得到类似 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);
});
但是这个版本只记录第一次交互中发生的所有事情,即如果一个人返回同一页面,his/her 不会记录操作。
我应该如何更改代码来记录我需要的点击流?谢谢!
您的第一个示例不起作用,因为 reasonOrder 是 addOnLoad 函数的局部变量。试试这个:
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) {
if (type == "next"){
reasonOrder = reasonOrder + "|next|";
Qualtrics.SurveyEngine.setEmbeddedData('reasonOrder', reasonOrder);
}
else if (type == "prev"){
reasonOrder = reasonOrder + "|prev|";
Qualtrics.SurveyEngine.setEmbeddedData('reasonOrder', reasonOrder);
}
});
});
我想找到一种方法来记录调查参与者点击不同选项的顺序,同时能够识别点击是否发生在参与者第二次加载同一页面之后。例如,假设我首先单击选项 1、3、4,然后导航到上一页并返回,选中选项 5 并取消选中 4,然后选择 "next"。我想得到类似 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);
});
但是这个版本只记录第一次交互中发生的所有事情,即如果一个人返回同一页面,his/her 不会记录操作。
我应该如何更改代码来记录我需要的点击流?谢谢!
您的第一个示例不起作用,因为 reasonOrder 是 addOnLoad 函数的局部变量。试试这个:
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) {
if (type == "next"){
reasonOrder = reasonOrder + "|next|";
Qualtrics.SurveyEngine.setEmbeddedData('reasonOrder', reasonOrder);
}
else if (type == "prev"){
reasonOrder = reasonOrder + "|prev|";
Qualtrics.SurveyEngine.setEmbeddedData('reasonOrder', reasonOrder);
}
});
});