Qualtrics循环与合并中各字段内随机抽取图片的实现方法
在Qualtrics中实现Loop & Merge字段独立随机抽取行的方法
方法一:用Qualtrics内置设置实现(无需代码)
- 先在问卷的Embedded Data模块中添加三个变量,比如
RandRow1、RandRow2、RandRow3,分别对应三个字段的随机行号。 - 进入Survey Flow,在第一个问题之前依次添加三个「Set Embedded Data」步骤:
- 第一个步骤设置
RandRow1,值填写${randint(1, X)},把X替换成第一个字段的总行数; - 第二个步骤设置
RandRow2,值填写${randint(1, Y)},Y替换成第二个字段的总行数; - 第三个步骤设置
RandRow3,值填写${randint(1, Z)},Z替换成第三个字段的总行数。
- 第一个步骤设置
- 回到问题编辑界面,修改每个问题的图片调用逻辑:
- 第一个问题的图片URL从
${lm://Field/1}改成${lm://Field/1/${e://Field/RandRow1}}; - 第二个问题改成
${lm://Field/2/${e://Field/RandRow2}}; - 第三个问题改成
${lm://Field/3/${e://Field/RandRow3}}。
- 第一个问题的图片URL从
- 这样每个问题就会基于各自的随机行号,独立抽取对应字段的内容,不再同步同一行。
方法二:用JavaScript实现(适合灵活定制场景)
假设第一个问题的图片元素ID是Image1(可右键图片选「Inspect」查看具体ID),字段1总行数为X,在该问题的「JavaScript」编辑框中添加以下代码:
Qualtrics.SurveyEngine.addOnload(function() { // 生成1到X之间的随机整数,替换X为字段1的总行数 const randomRow = Math.floor(Math.random() * X) + 1; // 获取字段1对应随机行的图片URL const imgUrl = Qualtrics.SurveyEngine.getEmbeddedData(`lm_Field_1_${randomRow}`); // 更新图片的地址 document.getElementById('Image1').src = imgUrl; });
另外两个问题依葫芦画瓢:修改字段编号(lm_Field_2_、lm_Field_3_)、随机数范围(替换成对应字段的总行数)和图片元素ID(Image2、Image3)即可。
内容的提问来源于stack exchange,提问作者Dodi
相关产品推荐
相关产品推荐

