【问题标题】:Separately record choices before and after page navigation in Qualtrics在 Qualtrics 中分别记录页面导航前后的选择
【发布时间】: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 函数中的所有内容,只执行了第二部分。

我尝试通过使用两个不同的嵌入字段(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); 
});

但是这个版本只记录第一次交互中发生的一切,即如果一个人回到同一页面,他/她的动作不会被记录下来。

我应该如何更改代码来记录我需要的点击流?谢谢!

【问题讨论】:

    标签: javascript click submit qualtrics


    【解决方案1】:

    您的第一个示例不起作用,因为 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);  
            }        
        });
    });
    

    【讨论】:

      猜你喜欢
      • 2018-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      • 2021-04-09
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      相关资源
      最近更新 更多