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

如何在SurveyJS中设置数值类型问题的小数位数

SurveyJS 数值输入小数位数控制方案

目前SurveyJS并没有内置的numberOfDecimals配置项来直接指定数值输入的小数位数,不过可以通过以下两种方式实现需求,不一定非要用正则(但正则是最直接的验证方案之一):

1. 内置验证规则限制(推荐)

给数值输入问题添加正则验证器,直接限制输入格式。比如要限制最多两位小数,可以这么配置:

{
  type: "text",
  inputType: "number",
  name: "decimal_input",
  title: "请输入最多两位小数的数值",
  validators: [
    {
      type: "regex",
      regex: /^\d+(\.\d{1,2})?$/,
      text: "输入格式错误,请输入最多两位小数的数值"
    }
  ]
}

这种方式会在用户输入不符合规则时弹出提示,阻止无效值提交。

2. 实时格式化输入

如果你需要用户输入过程中就自动限制小数位数,可以通过SurveyJS的onValueChanged事件来实时处理数值:

survey.onValueChanged.add((sender, options) => {
  if (options.question.name === "decimal_input") {
    const rawValue = options.value;
    if (rawValue && !isNaN(rawValue)) {
      // 保留两位小数,如需其他位数修改括号内数字即可
      const formattedValue = parseFloat(rawValue).toFixed(2);
      options.question.value = formattedValue;
    }
  }
});

这种方式会自动把用户输入的数值格式化为指定小数位数,体验更流畅。

内容的提问来源于stack exchange,提问作者G. Maesele

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 12:32:34