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

Qualtrics更新后:用JS嵌入数据统计文本框响应数实现显示逻辑

解决Qualtrics统计文本框数量并控制问题显示(无冗余页面)

我明白你的痛点——之前的方案因为Qualtrics更新失效,现在不得不加个没用的中间页面嵌JS,确实很烦人。其实不用这么麻烦,咱们可以利用Qualtrics的嵌入式数据和页面级事件来搞定,完全去掉冗余页面:

步骤1:创建嵌入式数据存储统计结果

首先在你的Survey Flow里添加一个嵌入式数据字段(比如命名为TextBoxCount),把它放在所有问题的最前面,用来存我们统计的填写过的文本框数量。

步骤2:在目标页面添加统计逻辑(无需冗余页面)

找到包含前两个需要统计的问题的页面(如果两个问题在不同页面,就选第二个问题所在的页面),给这个页面添加页面级JavaScript:

Qualtrics.SurveyEngine.addOnPageSubmit(function() {
    // 替换这里的QID1和QID2为你实际的两个问题的QID
    const q1TextInputs = document.querySelectorAll('#QID1 .InputText');
    const q2TextInputs = document.querySelectorAll('#QID2 .InputText');
    
    let filledTextBoxes = 0;
    
    // 统计第一个问题中填写了内容的文本框
    q1TextInputs.forEach(input => {
        if (input.value.trim() !== '') filledTextBoxes++;
    });
    
    // 统计第二个问题中填写了内容的文本框
    q2TextInputs.forEach(input => {
        if (input.value.trim() !== '') filledTextBoxes++;
    });
    
    // 把统计结果存入嵌入式数据,后面第三个问题会用到
    Qualtrics.SurveyEngine.setEmbeddedData('TextBoxCount', filledTextBoxes);
});

这段代码会在用户提交当前页面(也就是进入第三个问题之前)自动统计两个问题里有填写内容的文本框数量,把结果存在我们之前创建的嵌入式数据里。

步骤3:控制第三个问题的显示内容

接下来给第三个问题添加问题级JavaScript,读取嵌入式数据里的统计结果,动态调整显示内容:

Qualtrics.SurveyEngine.addOnload(function() {
    const count = parseInt(Qualtrics.SurveyEngine.getEmbeddedData('TextBoxCount'));
    const currentQuestion = this;
    
    // 根据统计数量自定义显示逻辑,这里举两个例子:
    if (count >= 2) {
        // 修改问题文本
        currentQuestion.setQuestionText(`你一共填写了${count}个文本框,这是对应内容A`);
        // 或者显示/隐藏特定选项组(替换ChoiceGroup1/2为你实际的选项组类名)
        document.querySelector('#QID3 .ChoiceGroup1').style.display = 'block';
        document.querySelector('#QID3 .ChoiceGroup2').style.display = 'none';
    } else {
        currentQuestion.setQuestionText(`你一共填写了${count}个文本框,这是对应内容B`);
        document.querySelector('#QID3 .ChoiceGroup1').style.display = 'none';
        document.querySelector('#QID3 .ChoiceGroup2').style.display = 'block';
    }
});

注意事项

  • 一定要把代码里的QID1、QID2、QID3替换成你问卷中实际的问题ID(每个问题的QID可以在问题设置里找到)。
  • 如果前两个问题和第三个问题在同一个页面,那把第一步的代码改成页面的addOnReady事件,而不是addOnPageSubmit,这样页面加载时就会实时统计并更新第三个问题的显示。

这样操作下来,完全不需要那个冗余的中间页面,逻辑也更清晰,还能适配Qualtrics的最新版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:24:21