You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qualtrics同区块调用Survey Flow生成的嵌入式变量问题

Qualtrics嵌入式变量同页面调用空白问题解决方案

核心问题拆解

  1. 嵌入式变量设置后,同页面管道文本调用显示空白,下一页面正常——本质是管道文本渲染时机与JS执行时机不匹配
  2. 针对QID110/QID111的判断代码未生效,导致嵌入式数据test为空,管道调用无内容

问题原因

  1. 管道渲染时机限制:Qualtrics的管道变量${e://Field/test}在页面初始加载时就完成解析渲染,而JS设置嵌入式数据是在页面加载后执行,此时管道文本已生成,无法自动同步更新。
  2. 选项值判断错误:${q://QID110/ChoiceGroup/SelectedChoices}获取的是选项的后台值(Value),而非前端显示的文本(Text)。若你的选项显示"Yes"/"No"但后台值设为1/0或其他值,判断条件会不成立,导致ans为空字符串。

修正方案

1. 修正判断逻辑与代码执行时机

将以下代码放在QID110/QID111所在页面的页面JavaScript(页面设置→高级→页面JavaScript)中:

Qualtrics.SurveyEngine.addOnload(function() {
    this.waitForPageLoad(function() {
        var ans = "";
        // 获取选项选中值(替换为你实际的选项Value,比如1/0或Yes/No)
        var qid110 = "${q://QID110/ChoiceGroup/SelectedChoices}";
        var qid111 = "${q://QID111/ChoiceGroup/SelectedChoices}";
        
        // 根据实际选项值调整判断条件
        if (qid110 === "Yes" && qid111 === "No") {
            ans = "a";
        } else if (qid110 === "No" && qid111 === "Yes") {
            ans = "b";
        } else if (qid110 === "Yes" && qid111 === "Yes") {
            ans = "c";
        }
        
        // 设置嵌入式数据
        Qualtrics.SurveyEngine.setEmbeddedData("test", ans);
        
        // 手动更新同页面的管道文本内容
        var targetElements = document.querySelectorAll('span:contains("${e://Field/test}")');
        targetElements.forEach(el => {
            el.textContent = el.textContent.replace("${e://Field/test}", ans);
        });
    });
});
  • 注意:提前确认QID110/QID111的选项Value,若不是"Yes"/"No",需替换成对应值(比如1/0)。

2. 关键说明

  • 下一页面调用${e://Field/test}无需额外处理,因为页面加载时嵌入式数据已存在,管道文本会正常渲染。
  • 若仅需在下一页面使用该变量,可去掉代码中手动更新DOM的部分,仅保留嵌入式数据设置逻辑。

内容的提问来源于stack exchange,提问作者Roberto Degado

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 09:27:32