Qualtrics中如何让同名嵌入数据仅保留首个呈现题目的文本
问题根源
你当前每道题的加载逻辑都会无条件执行setEmbeddedData覆写QItem字段,题目随机排序后,最后加载的题目会覆盖之前所有写入的值,最终导出的自然是最后一道展示题目的文本。
修改方案
核心逻辑:仅在QItem字段为空、未被赋值时写入当前题目的文本,字段已有值时直接跳过写入操作。这样第一道加载的题目完成赋值后,后续所有题目都不会再覆盖该值,最终导出的就是第一道呈现题目的文本。
所有题目的JavaScript代码按如下逻辑修改即可,以QID1为例:
Qualtrics.SurveyEngine.addOnload(function() { const currentQItem = Qualtrics.SurveyEngine.getEmbeddedData('QItem'); // 仅未赋值时写入当前题文本 if (!currentQItem) { const itemText = "${q://QID1/QuestionText}"; Qualtrics.SurveyEngine.setEmbeddedData('QItem', itemText); } });
QID2到QID5的代码只需将上述代码中${q://QID1/QuestionText}里的数字替换为对应题目的ID即可,其余逻辑保持不变。
注意点
- 你之前在调查流开头提前配置
QItem嵌入数据的操作无需调整,保持原有配置即可正常导出字段 - 调查流里配置
QItem时不要设置默认值,保持字段为空即可,否则初始非空会导致判断逻辑失效,第一道题无法正常写入 - 该方案不需要调整题目随机化设置、不需要额外记录题目展示顺序,改动量最小,完全兼容现有问卷配置
内容的提问来源于stack exchange,提问作者missgwolf
相关产品推荐
相关产品推荐

