如何将Qualtrics中的javascript应用于一组项目?

时间:2017-06-12 06:34:22

标签: javascript qualtrics

我正在设计Qualtrics的一项调查,该调查有大约200项。 每个项目每页显示一个问题。 我想在点击回复时自动提升问题。

我可以看到如何使用代码here一次完成这一个问题:

Qualtrics.SurveyEngine.addOnload(function()
{
    var that = this;
    this.questionclick = function(event,element){
        if (element.type == 'radio')  {
            that.clickNextButton();
        }
    }
});

the help files here中描述的方法。基本上,我们的想法是你点击一个问题的javascript按钮并粘贴代码。

然而,这个过程重复200次会很繁琐,如果我想调整javascript,我将再次重复这个过程200次。

有没有办法将Java脚本应用于Qualtrics中的一组问题?

3 个答案:

答案 0 :(得分:1)

一种选择是导出调查,编辑导出文件,然后将调查重新导入Qualtrics。 Qualtrics支持中没有详细记录此方法,但它确实有效。 This help file解释了如何将Qualtrics调查导出和导入为QSF文件(即Qualtrics Survey Formatting file)。

因此,主要的挑战是如何编辑QSF以便添加相关的java脚本200次。

QSF文件采用JSON格式。在此之前,我听说过,但从未使用过JSON格式。也许这是Qualtrics用户的典型特征。

默认情况下,QSF文件采用串行形式(即,它在一行上)。我发现this online editor有助于格式化和解析QSF文件的层次结构。 json qsf files qualtrics

通常,QSF文件的结构以SurveyEntry开头,具有一般调查规范。然后它有一堆SurveyElements。我的示例中的前六个元素与调查的一般功能相关。特别是,第一个元素表示块,并列出块中问题的顺序。在前六个问题之后。每个问题都包含一系列ID类型变量,后跟PayloadPayload包含控制问题特征的核心属性 - 值对。

特别是,问题的javascript保留在QuestionJS变量中。我不认为有效载荷中属性的顺序很重要,但我不太确定。

因此,任务只是在每个问题的Payload属性中添加这样的代码。

"QuestionJS":"Qualtrics.SurveyEngine.addOnload(function()\n{\n    var that = this;\n    this.questionclick = function(event,element){\n        if (element.type == 'radio')  {\n            that.clickNextButton();\n        }\n    }\n\n\n});",

据推测,有更好的方法可以编辑更好地利用数据结构的json脚本,但应该可以进行简单的查找和替换。例如,如果您的所有问题都是类型多项选择,那么您可以执行类似

的操作

查找:

 "QuestionType":"MC",

替换

 "QuestionType":"MC","QuestionJS":"Qualtrics.SurveyEngine.addOnload(function()\n{\n    var that = this;\n    this.questionclick = function(event,element){\n        if (element.type == 'radio')  {\n            that.clickNextButton();\n        }\n    }\n\n\n});",  

这个想法可以扩展到你想要在一组问题中添加特定属性的其他场合。

答案 1 :(得分:1)

更简单的方法是将JavaScript放在页眉或页脚(Look& Feel / Advanced)中,然后它将应用于调查中的每个页面。

<script type="text/javascript">
Qualtrics.SurveyEngine.addOnload(function() {
     // script logic goes here
});
</script>

答案 2 :(得分:0)

一种方法是使用“循环并合并”。

您使用一个模板项目创建一个块,该模板项目反映了您想要的问题格式。在问题中包含所需的Java脚本以及所需的任何其他功能。

然后打开循环,将每个问题的文本合并并粘贴到字段1中。例如,外观如下。

sample items loop and merge

然后您可以将此文本输入到模板问题中:

template question qualtrics

有关loop & merge on the qualtrics suport site

的更多信息

如果您需要随机化并记录顺序,则有详细信息here