我正在Qualtrics创建一个试点调查,以确保我的所有问题都清晰易懂。对于每个问题,我想添加一个复选框或其他一些功能,以便受访者可以将问题标记为措辞错误或难以理解。该复选框将显示在答案选项或文本框下方。有没有办法通过Qualtrics中的JavaScript编辑器执行此操作?
我不想在每个问题之后问一个单独的问题,询问上一个问题是否不清楚。它会占用太多空间并惹恼受访者。
我到目前为止提出的解决方案是在每个问题之前创建一个复选框,并保存复选框是否被单击嵌入数据。
首先,我在Survey Flow中创建一个名为check1_d
的嵌入数据字段。
其次,我在问题文本的HTML中嵌入了一个复选框。
<input id="check1" type="checkbox" value="1" /> <p>What is your favorite color?<p>
最后,我将以下内容添加到JavaScript编辑器中,以记录嵌入数据字段check1_d
的答案。但这部分不起作用。有谁知道如何记录人们是否点击了嵌入数据字段的框?
var mycheck = String(document.getElementById("check1").check);
Qualtrics.SurveyEngine.setEmbeddedData("check1_d", mycheck);
答案 0 :(得分:2)
incaren在.checked属性上是正确的,但我认为你还有其他问题。您需要一个事件监听器,否则您只是保存复选框的初始状态。此外,您需要在问题块之前的调查流程中定义嵌入变量check1_d。
下面是可行的代码。由于Qualtrics使用prototypejs,下面的代码使用它。它不是将“true”和“false”保存为字符串,而是将1保存为true,将0保存为false。
Qualtrics.SurveyEngine.addOnload(function() {
var mycb = $('check1');
Qualtrics.SurveyEngine.setEmbeddedData("check1_d", +mycb.checked);
mycb.on('click', function (event, element) {
Qualtrics.SurveyEngine.setEmbeddedData("check1_d", +element.checked);
});
});
答案 1 :(得分:1)
这看起来可能只是一个带有.check属性的拼写错误:
var mycheck = String(document.getElementById("check1").check);
// Should instead be
var mycheck = String(document.getElementById("check1").checked);
Qualtrics.SurveyEngine.setEmbeddedData("check1_d", mycheck);