我正在设计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中的一组问题?
答案 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文件的层次结构。
通常,QSF文件的结构以SurveyEntry
开头,具有一般调查规范。然后它有一堆SurveyElements
。我的示例中的前六个元素与调查的一般功能相关。特别是,第一个元素表示块,并列出块中问题的顺序。在前六个问题之后。每个问题都包含一系列ID类型变量,后跟Payload
。 Payload
包含控制问题特征的核心属性 - 值对。
特别是,问题的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中。例如,外观如下。
然后您可以将此文本输入到模板问题中:
有关loop & merge on the qualtrics suport site
的更多信息如果您需要随机化并记录顺序,则有详细信息here。