使用数据源模型验证规则进行KendoUI MVVM验证

时间:2013-01-17 20:52:30

标签: kendo-ui kendo-datasource kendo-mvvm kendo-validator

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"
                }
            }
        });

0 个答案:

没有答案