在 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函数内部的一切,只执行了第二部分。

我尝试使用两个不同的嵌入字段(reasonOrderchoiceOrder)分别执行这两个部分,并执行以下操作:

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);  
        }        
    });
});