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

如何为SurveyJS问题添加自定义属性并在回答变更时读取其值

解决方案

你之前的问题是Serializer添加属性的目标类型错误——你给itemvalue(选项条目类型)加了属性,但实际displayAlert是定义在radiogroup这类问题(question)上的,所以需要把Serializer的目标类型改成对应的问题类型。

正确的Serializer配置

你需要针对问题类型(通用question或具体radiogroup)添加自定义属性:

// 方法1:给所有问题类型添加该属性
Serializer.addProperty('question', {
  name: 'displayAlert',
  type: 'boolean',
  category: 'general',
  defaultValue: false // 可选,设置默认值
});

// 方法2:仅给radiogroup类型添加该属性
// Serializer.addProperty('radiogroup', {
//   name: 'displayAlert',
//   type: 'boolean',
//   category: 'general',
//   defaultValue: false
// });

验证事件中的读取逻辑

你的onValueChanging事件代码本身没问题,只要Serializer配置正确,就能正常读取属性:

this.userSurvey.onValueChanging.add((survey: any, change: any) => {
  console.log('alert?', change.question.displayAlert);
});

确认JSON配置有效性

你的survey.json中displayAlert: true的配置无需修改,只要Serializer正确注册了该属性,SurveyJS会自动解析这个自定义属性并绑定到对应的question实例上。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 18:09:24