Qualtrics中如何捕获随机排序选项的位置并存储到嵌入式数据
Qualtrics捕获随机化选项展示位置的实现方案
你的思路完全正确,通过jQuery遍历选项并匹配关键词的方式,既能实现随机化位置的捕获,也能完美适配选项文本包含随机附加内容的场景。具体实现步骤如下:
1. 提前创建嵌入式数据字段
在调研的「设置」→「嵌入式数据」页面,添加pos_alpha、pos_beta、pos_gamma、pos_delta这几个字段,确保后续代码能对其赋值。
2. 编写问题级JavaScript代码
打开目标问题的编辑界面,切换到「JavaScript」标签,点击「Add JavaScript」,替换默认代码为以下内容:
Qualtrics.SurveyEngine.addOnload(function() { // 映射关键词与对应嵌入式数据字段 const targetMap = { "alpha": "pos_alpha", "beta": "pos_beta", "gamma": "pos_gamma", "delta": "pos_delta" }; // 遍历当前问题的所有单选选项 jQuery("#" + this.questionId + " [type=radio]").each(function(idx) { // 获取选项的文本内容 const optText = jQuery(this).closest(".Choice").find(".Label").text().trim(); // 检查文本是否包含目标关键词 for (const [key, field] of Object.entries(targetMap)) { if (optText.includes(key)) { // 赋值嵌入式数据,位置从1开始计数 Qualtrics.SurveyEngine.setEmbeddedData(field, idx + 1); break; // 匹配成功后跳出循环,避免重复赋值 } } }); });
3. 关键逻辑说明
- 关键词匹配:使用
optText.includes(key)检查选项文本是否包含指定关键词,不管文本前后有多少随机附加内容,只要包含目标关键词就能被正确识别。 - 位置计数:jQuery的
each循环索引从0开始,所以用idx + 1转换为从1开始的位置序号,符合你需要的计数规则。 - 嵌入式数据赋值:通过Qualtrics官方API
Qualtrics.SurveyEngine.setEmbeddedData()完成赋值,确保数据能被后续调研环节调用。
4. 验证方式
预览调研并多次刷新(触发选项随机化),提交后查看「数据&分析」模块中的嵌入式数据列,确认每个pos_xxx字段的值与对应选项的展示位置一致。
内容的提问来源于stack exchange,提问作者user20380762
相关产品推荐
相关产品推荐

