将 jquery 验证添加到 kendo ui 元素

Posted

技术标签:

【中文标题】将 jquery 验证添加到 kendo ui 元素【英文标题】:adding jquery validation to kendo ui elements 【发布时间】:2014-03-15 20:25:35 【问题描述】:

我查看了很多关于此的帖子,并且在我添加以下内容时它确实可以验证我的字段。

$.validator.setDefaults(
    ignore: []
);

我仍然缺少的部分是添加input-validation-error 类来通知用户。它适用于我的其他输入元素(非剑道)。我也尝试在 $.validator.setDefaults 中手动添加该类,但似乎没有任何效果。

在某处是否有示例或有人让它工作?

我不确定我这样做是否正确,但这是我尝试手动添加的内容。

$.validator.setDefaults(
    ignore: [],
    errorClass: "input-validation-error",
    errorElement: "input",
    highlight: function (element, errorClass) 
        $(element).addClass(errorClass)
    ,
    unhighlight: function (element, errorClass) 
        $(element).removeClass(errorClass)
    
);

【问题讨论】:

这个问题没有意义。默认情况下,插件会忽略所有隐藏字段。设置ignore: [] 只会禁用ignore 选项。换句话说,ignore: [] 允许验证隐藏字段,而不是忽略。您的问题与隐藏字段有什么关系?您的渲染 html 标记在哪里? @Sparky 剑道和隐藏字段 - telerik.com/forums/mvc-unobtrusive-validation-doesn't-work 【参考方案1】:

我找到了基于this post 的解决方案。基本上你需要做的是寻找 input 被包裹的父元素。像这样的东西:

$.validator.setDefaults(
    ignore: [],
    highlight: function (element, errorClass) 
        element = $(element);
        if (element.parent().hasClass("k-widget")) 
            element.parent().addClass('input-validation-error');
         else 
            element.addClass('input-validation-error')
        
    ,
    unhighlight: function (element, errorClass) 
        element = $(element);
        if (element.parent().hasClass("k-widget")) 
            element.parent().removeClass('input-validation-error');
         else 
            element.removeClass('input-validation-error')
        
    
);

我建议任何人在删除这个特定的兔子洞之前访问我上面链接的帖子,因为它引入了另一个问题,只是为了了解你正在进入的内容。例外的答案确实比那里提出的问题更相关。

【讨论】:

以上是关于将 jquery 验证添加到 kendo ui 元素的主要内容,如果未能解决你的问题,请参考以下文章

Kendo UI 将 DropDownList 添加到 Grid (MVC)

Kendo UI:无法将 footerTemplate 添加到网格

Kendo UI Grid - 如何将类添加到生成的表中

kendo ui 图表 - 将 html 和多个值添加到 series.Labels.Template

如何将Kendo UI打字输入到TypeScript模块中

Kendo UI Grid添加新记录而不是将数据发布到服务器端