jquery.validate v. 1.9 忽略一些隐藏的输入

发布于 2024-12-22 01:58:12 字数 895 浏览 1 评论 0 原文

使用版本 1.7 一切正常,所有隐藏输入都得到验证,
在 1.9 版本中,有些可以,有些则不行
我使用 asp.net mvc 3 和 jquery.validate + jquery.unobtrusive (jquery 1.7.1)

这是生成的 html:

    <!--this gets validated-->
        <input type="hidden" data-val="true" data-val-number="The field Chef must be a number." data-val-required="The Chef field is required." value="" name="Chef" id="Chef">    
<span data-valmsg-replace="true" data-valmsg-for="Chef" class="field-validation-valid"></span>

    <!--this one is ignored-->
        <input type="hidden" data-val="true" data-val-number="The field MyFruit must be a number." data-val-required="The MyFruit field is required." value="" name="MyFruit" id="MyFruit">
<span data-valmsg-replace="true" data-valmsg-for="MyFruit" class="field-validation-valid"></span>

有人知道为什么会发生这种情况吗?

with version 1.7 everything works ok, all hidden inputs get validated,
but with version 1.9 some do and some don't
I use asp.net mvc 3 and jquery.validate + jquery.unobtrusive (jquery 1.7.1)

this is the generated html:

    <!--this gets validated-->
        <input type="hidden" data-val="true" data-val-number="The field Chef must be a number." data-val-required="The Chef field is required." value="" name="Chef" id="Chef">    
<span data-valmsg-replace="true" data-valmsg-for="Chef" class="field-validation-valid"></span>

    <!--this one is ignored-->
        <input type="hidden" data-val="true" data-val-number="The field MyFruit must be a number." data-val-required="The MyFruit field is required." value="" name="MyFruit" id="MyFruit">
<span data-valmsg-replace="true" data-valmsg-for="MyFruit" class="field-validation-valid"></span>

anybody knows why could this happen ?

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

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

发布评论

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

评论(1

枕梦 2024-12-29 01:58:12

使用 1.9 版本验证插件会忽略 :hidden 元素="noreferrer">默认

另一个变化应该是设置带有隐藏元素的表单
更容易,现在默认情况下会忽略这些(选项“忽略”有
“:hidden”现在为默认值)。理论上,这可能会打破现有的
设置。在不太可能发生的情况下,您可以通过以下方式修复它
将忽略选项设置为“[]”(不带方括号的
引用)。

由于您使用的是不显眼的版本,因此无法设置任何选项。所以你不需要自己初始化插件,因此你必须在初始化后更改它的设置。您可以这样修复它:

var validatorSettings = $.data($('form')[0], 'validator').settings;
validatorSettings.ignore = "";

此代码适用于标记中的第一个 form 元素,您可以指定您的表单并更改默认行为。

With 1.9 version validation plugin ignores :hidden elements by default.

Another change should make the setup of forms with hidden elements
easier, these are now ignored by default (option “ignore” has
“:hidden” now as default). In theory, this could break an existing
setup. In the unlikely case that it actually does, you can fix it by
setting the ignore-option to “[]” (square brackets without the
quotes).

Because you're using unobtrusive version, you can't set any option. So you don't init plugin yourself, therefor you have to change it's setting after it's initialized. You can fix it like this:

var validatorSettings = $.data($('form')[0], 'validator').settings;
validatorSettings.ignore = "";

This code works for first form element in the markup, you can specify your form(s) and change default behaviour.

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