2

我在我的 MVC4 应用程序中使用 Kendo Editor 并通过

 $("form").data("validator").settings.ignore = ":hidden:not(#Text)";
 $.validator.setDefaults({ ignore: [] });

Kendo 围绕 TextArea 构建它的编辑器并将其标记为隐藏字段。现在验证正在工作,但如果验证失败,则不会将 .input-validation-error 类添加到其中。谁能建议我如何做到这一点。

4

1 回答 1

0

关键是输入验证错误类应用于原始隐藏字段......而不是编辑器。您必须拦截验证失败事件,并且必须手动将此类添加到编辑器中。

有两种方法可以拦截验证事件。更简单的方法是在传递给 setDefaults 方法的选项中指定自定义 showErrors 函数。验证插件文档解释了如何执行此操作。

另一种方法是重新定义验证器对象原型的元素和表单方法……这并不难,但需要你对验证插件有更深入的了解。

我建议使用第一种方法并在你的 showErrors 函数中放置一个断点,这样你就可以熟悉传递给它的参数的格式。添加自定义项后,不要忘记调用默认的 showErrors 函数。

不要忘记验证错误也必须被清除。现在,如果插件不会清除您的自定义错误(可能......因为它们没有附加到输入字段),您也将被迫覆盖元素和表单方法,因为如果没有错误,则不会调用 showErrors 函数,而在任何情况下都会调用上述方法,因此您可以将清除代码放入其中....

我的建议是集中精力在开始时显示错误,并且在您熟悉验证插件的工作方式之后,如果有必要,集中精力清除您的自定义错误(也许它们会被插件自动清除......不是确定插件如何清除其错误)

于 2013-04-14T14:01:28.560 回答