1

验证一个小技巧kendo.data.Model

因此,这个小技巧无需手动将 HTML5 必需属性添加到每个输入字段,而是获取您在模型中定义的所有验证规则,并将它们作为属性添加到适当的字段。没有经过全面测试,只是一个快速破解。根据 Kendo 的说法,如果您使用 MVVM,则不会处理验证规则,但如果您将 Dataource 直接绑定到网格,它们会处理。

代码:我只是把这段代码放在一个名为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"
                }
            }
        });
4

0 回答 0