对kendo.data.Model
因此,不要手动将HTML5 required属性添加到每个输入字段 这个小小的黑客获取了你在模型中定义的所有验证规则 将它们作为属性添加到适当的字段。没有完全测试只是一个快速的黑客。根据Kendo的说法,如果您使用的是MVVM,则验证规则不会得到处理,但是如果您将数据源直接绑定到网格,则可以进行处理。
代码:
我只是将此代码放在名为definevalidation.js
function getValidationAttributesFromModel(myFields) {
var myValidatedFields = [];
var obj = null;
$.each(myFields, function(fieldName) {
if (this.validation) {
var obj = {
fieldName : fieldName,
validation : this.validation
};
myValidatedFields.push(obj);
}
});
addValidationAttributes(myValidatedFields);
}
function addValidationAttributes(myValidatedFields) {
$.each(myValidatedFields, function(index) {
$('#' + this.fieldName).attr(this.validation);
});
}
使用方法: 如果ParentDS是您的数据源,那么在表单代码中使用
getValidationAttributesFromModel(ParentDS.options.schema.model.fields)
样本模型:
mydatamodel = kendo.data.Model.define({
id : "__KEY",
fields : {
__KEY : {
type : "string"
},
__STAMP : {
type : "number"
},
ID : {
editable : false,
nullable : true
},
firstName : {
type : "string",
validation : {
required : true
}
},
middleName : {
type : "string"
},
lastName : {
type : "string"
}
}
});