我正在使用API数据填充kendo - grid,但是在一个字段上添加验证也会自动为其他所有字段工作。
这是kendo-dataSource中的架构:
schema: {
model: {
id : "id",
fields: {
id: { editable: false, type: 'number'},
name: { editable: true, type : "string" },
unique_url: { editable: true , type: 'string'},
image_url : { editable: true, type : "string" },
title: {type : "string", validation: {
required: true,
validateTitle: function (input) {
console.log("I am inside validation",input.val());
if (input.val().length > 5) {
input.attr("data-validateTitle-msg", "Max length exceeded 5 characters only");
return false;
}
return true;
}
}
},
body: { editable: true, type : "string",validation: { max: 90, required: true, message : "Maximum characters should be 90"} },
adaccount_id: { editable: false, type: 'number'}
}
}
},
这里我添加了标题字段的验证,但它也被调用了其他字段。 我正在添加一个验证快照---
请帮我查找错误。
答案 0 :(得分:5)
您的代码中确实没有任何错误,但更像是Kendo Grid验证设计中的错误。即使您仅在title
字段中指定验证功能,它也会为您编辑的任何输入字段全局运行验证。
在validateTitle
中,您需要过滤要运行验证功能的输入。像这样:
if (input.is("[name='title']") && input.val().length > 5) {
input.attr("data-validateTitle-msg", "Max length exceeded 5 characters only");
return false;
}
如果您需要实时演示,您可以随时参考Telerik的在线演示,这些演示是可编辑的,非常便于玩弄东西。这是自定义验证的demo,他们同样必须过滤字段名称的输入。
答案 1 :(得分:2)
您只需要字段验证,只需添加视图模型属性属性
即可[Required(ErrorMessage ="CountryCode is Mandatory")]
public virtual string CountryCode
{
get;
set;
}
答案 2 :(得分:1)
我们可以使用此代码轻松设置最大长度,不允许用户输入超过指定字符的字符数
model: {
id: "CLASSID",
fields: {
CLASSID: { type: "number" },
CLSNAME: { type: "string" },
CLSFLAG: {
type: "string", validation: {
required: true,maxlength:"3"
}
},
CLSSTATUS: { type: "boolean" }
}
}