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

Kendo自定义验证:设置禁止输入小数的提示信息

解决Kendo表单字段禁止输入小数点并自定义验证提示的问题

我来帮你搞定这个Kendo表单的自定义验证需求,要给minValue字段设置禁止输入小数点的规则,同时显示自定义提示信息,咱们一步步调整配置:

1. 表单字段基础配置

首先在你的Kendo表单字段定义里,确保minValue字段的格式设置为{0:c0}(用来控制显示时不展示小数位),同时关联到后续的验证规则:

fields: [
  {
    field: "minValue",
    title: "Test Number TextBox",
    format: "{0:c0}" // 仅控制显示,需配合验证禁止输入小数点
  }
]

2. 修正Schema Model的验证规则

原配置里有几个细节需要调整才能正常工作:

  • 要验证的目标字段是minValue,不是原代码里的value
  • 原验证逻辑的写法有误,需要用正确的方式检查输入值是否包含小数点
  • 自定义验证的命名要和提示属性对应,确保Kendo能识别并显示自定义提示

修正后的完整schema配置:

schema: {
  model: {
    id: "id",
    fields: {
      id: { editable: false, type: 'number'},
      name: { editable: true, type: "string" },
      minValue: {
        type: "number",
        validation: {
          required: true, // 保留必填验证
          // 自定义验证规则:禁止输入小数点
          noDecimals: function(input) {
            // 仅对minValue字段进行验证
            if (input.is("[name='minValue']")) {
              // 检查输入值是否包含小数点
              if (input.val().indexOf('.') !== -1) {
                // 设置自定义验证提示信息
                input.attr("data-nodecimals-msg", "May not enter decimals");
                return false; // 验证不通过
              }
            }
            return true; // 验证通过
          }
        }
      }
    }
  }
}

关键细节说明

  • 验证函数命名对应提示属性:自定义验证函数叫noDecimals,对应的提示属性就是data-nodecimals-msg,Kendo会自动读取这个属性作为验证失败的提示
  • 精准匹配目标字段:用input.is("[name='minValue']")确保只对目标字段应用这个验证规则,避免影响其他字段
  • 格式与验证配合:{0:c0}只是控制显示时隐藏小数位,但用户仍能手动输入小数点,所以必须通过验证规则来禁止输入行为

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:05:54