jquery.validate.unobtrusive 不适用于 Firefox/Chrome

发布于 2024-12-28 12:20:02 字数 150 浏览 1 评论 0原文

对于 MVC 3.0 -动态内容的客户端验证在 IE 中运行良好,具有以下行。

$.validator.unobtrusive.parse() 

但在 firefox/chrome 下就不是这样了。请提出任何解决方法。

For MVC 3.0 -Client Validation on dynamic content is works fine in IE with below line.

$.validator.unobtrusive.parse() 

But this is not the case when firefox / chrome. Please suggest any workaround.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

枕花眠 2025-01-04 12:20:02

您似乎没有向解析函数传递任何参数。您需要向其传递一个选择器,该选择器将包含通过 AJAX 添加的所有新元素。在最坏的情况下:

$.validator.unobtrusive.parse(document);

但最好指定一个容器:

$.validator.unobtrusive.parse('form');

或者:

$.validator.unobtrusive.parse('#someContainer');

还有一个问题。如果您不使用 AJAX 刷新包含新添加元素的

元素,即 form 标签不是 Partial 的一部分,则需要先删除之前的验证规则与此表单关联的或 $.validator.unobtrusive.parse 方法不会执行任何操作:

$('form').removeData('validator');
$('form').removeData('unobtrusiveValidation');
$.validator.unobtrusive.parse('form');

You don't seem to be passing any argument to the parse function. You need to pass it a selector that will contain all the new elements that were added with AJAX. In the worst case:

$.validator.unobtrusive.parse(document);

But it would be better to specify a container:

$.validator.unobtrusive.parse('form');

or:

$.validator.unobtrusive.parse('#someContainer');

Also there's a gotcha. If you don't refresh the <form> element that contains the newly added elements with AJAX, i.e. the form tag is not part of the partial, you will need to first remove previous validation rules that were associated with this form or the $.validator.unobtrusive.parse method won't do anything:

$('form').removeData('validator');
$('form').removeData('unobtrusiveValidation');
$.validator.unobtrusive.parse('form');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文