Qualtrics复选框问题:记录选项选择顺序及点击次数需求
解决Qualtrics复选框选择顺序与点击次数追踪问题
嘿,这个需求确实得靠自定义脚本实现——毕竟Qualtrics默认不会记录复选框的点击顺序和次数。我给你整理了一套亲测可行的方案:
核心思路
我们通过给复选框绑定点击事件,实时记录每一次点击的选项编号,同时统计每个选项的点击次数,最后把这些数据存到Qualtrics的嵌入式数据里,这样导出问卷数据的时候就能直接拿到想要的信息了。
具体实现步骤
1. 给目标复选框问题添加JavaScript
打开你的复选框问题编辑页面,找到「高级」选项里的「JavaScript」,点击进入脚本编辑器。
2. 编写追踪脚本
把下面的代码粘贴进去,注释已经写得很清楚,你可以根据自己的选项数量调整:
Qualtrics.SurveyEngine.addOnload(function() { // 初始化两个变量:存储点击顺序的数组、统计点击次数的对象 let selectionOrder = []; let clickCounts = {}; // 获取当前问题的所有复选框元素 const checkboxes = this.getQuestionContainer().querySelectorAll('.ChoiceInput'); // 给每个复选框绑定点击监听 checkboxes.forEach((checkbox, index) => { // 选项编号从1开始(和Qualtrics的选项顺序对应) const optionNum = index + 1; // 初始化该选项的点击次数为0 clickCounts[optionNum] = 0; checkbox.addEventListener('click', function() { // 点击次数+1 clickCounts[optionNum]++; // 将当前选项编号加入顺序数组 selectionOrder.push(optionNum); // 把数据存入嵌入式数据,方便后续导出 Qualtrics.SurveyEngine.setEmbeddedData('SelectionOrder', selectionOrder.join('-')); Qualtrics.SurveyEngine.setEmbeddedData(`ClickCount_Option${optionNum}`, clickCounts[optionNum]); }); }); });
3. 提前创建嵌入式数据字段
去问卷的「设置」->「嵌入式数据」页面,创建以下字段:
SelectionOrder:用来存储点击顺序的字符串(比如用户先点4再点2,这里就会存"4-2")ClickCount_Option1、ClickCount_Option2……ClickCount_Option6:对应你6个选项的点击次数(有多少个选项就创建多少个)
4. 测试与导出
发布问卷后,自己测试点击复选框,完成问卷后导出数据,就能在嵌入式数据区域看到:
SelectionOrder列显示完整的点击顺序- 各个
ClickCount_OptionX列的数值如果大于1,就说明这个选项被用户多次点击(也就是选中后又取消,或者取消后又选中过)
额外优化(可选)
如果需要区分每一次点击是「选中」还是「取消」动作,可以修改点击事件里的代码,把状态也记录下来:
checkbox.addEventListener('click', function() { const isChecked = this.checked; clickCounts[optionNum]++; // 把状态加入顺序,比如"4:选中-2:取消" selectionOrder.push(`${optionNum}:${isChecked ? '选中' : '取消'}`); // 后续存储逻辑不变 });
注意:如果用户刷新页面,临时存储的变量会重置,要是担心这种情况,可以结合localStorage来持久化数据,但Qualtrics问卷一般是单页跳转,刷新场景不多,按需调整就行。
内容的提问来源于stack exchange,提问作者Joed Lynch




