Kendo-Grid列字段验证

时间:2014-07-10 08:11:22

标签: validation kendo-ui kendo-grid kendo-dataviz

我正在使用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'}
                       }
                   }
                },  

这里我添加了标题字段的验证,但它也被调用了其他字段。 我正在添加一个验证快照--- enter image description here

请帮我查找错误。

3 个答案:

答案 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)

http://localhost:2012

您只需要字段验证,只需添加视图模型属性属性

即可
[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" }
                    }
                }