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

SurveyJS 如何根据前置问题的回答动态修改后续问题的标题

SurveyJS 动态修改问题标题实现方案

方法1:使用内置表达式(无需额外JS代码,推荐)

SurveyJS 支持在title属性中直接使用{问题name}引用其他问题的答案,配合三元表达式就能直接实现逻辑:

  • 先给第一个单选问题设置name属性为q1(可自定义,和后续引用对应即可)
  • 第二个问题的title直接配置如下表达式即可,完整问卷配置示例:
{
  "elements": [
    {
      "type": "radiogroup",
      "name": "q1",
      "title": "请选择选项",
      "choices": [
        "TRUE",
        "FALSE"
      ]
    },
    {
      "type": "text",
      "name": "q2",
      "title": "{q1} = 'TRUE' ? 'What is your age?' : 'How old are you?'"
    }
  ]
}

内置表达式会自动监听q1的取值变化,实时更新第二题的标题,不需要额外编写逻辑代码。

方法2:使用onValueChanged事件监听

如果后续还有更复杂的联动逻辑,可以用Survey实例的事件回调实现:

// 初始化Survey实例后绑定事件
survey.onValueChanged.add(function(sender, options) {
  // 判断修改的是第一题
  if(options.name === 'q1') {
    const q2 = sender.getQuestionByName('q2');
    if(options.value === 'TRUE') {
      q2.title = 'What is your age?';
    } else {
      q2.title = 'How old are you?';
    }
  }
});

两种方法都能实现需求,方法1配置更简单,方法2扩展性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 19:27:05