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
相关产品推荐
相关产品推荐

