【问题标题】:jQuery Validate Ignore elements with stylejQuery验证忽略带有样式的元素
【发布时间】:2010-04-12 16:08:59
【问题描述】:

我正在使用 jQuery validate 进行客户端验证,我想忽略任何具有 style="display: none" 的元素

$("#myform").validate({
   ignore: "?"
});

在上述情况下,我的选择器会是什么?

【问题讨论】:

    标签: jquery jquery-validate


    【解决方案1】:

    注意:从 1.9.0 版开始,ignore: ":hidden" 是默认选项,因此不必再显式设置。


    使用:hidden:

    元素被认为是隐藏的有几个原因:

    • 它们的显示值为 none。
    • 它们是 type="hidden" 的表单元素。
    • 它们的宽度和高度明确设置为 0。
    • 祖先元素被隐藏,因此该元素不会显示在页面上。
    $("#myform").validate({
       ignore: ":hidden"
    });
    

    更新:为了完整起见,来自plugin's documentation

    忽略
    验证时要忽略的元素,只需将它们过滤掉。使用了 jQuery 的 not 方法,因此 not() 接受的所有内容都可以作为此选项传递。 submit 和 reset 类型的输入总是被忽略,禁用的元素也是如此。

    【讨论】:

    • @Felix:有没有办法让 validate() 返回一个布尔值?
    • @gmcalab:这个值应该表示什么?它返回一个Validatordocs.jquery.com/Plugins/Validation#Validator
    • @Felix 谢谢,很好的链接!现在 form() 仍未验证,它仍在验证隐藏字段....
    • 所以我没有忽略隐藏元素,而是禁用了隐藏元素,它现在似乎可以工作了。
    • 请注意ignore: ":hidden" 是默认值!要撤消此功能,请使用ignore: ""
    【解决方案2】:

    http://api.jquery.com/hidden-selector/

    ":hidden"

    就是你要找的。​​p>

    元素被认为是隐藏的有几个原因:

    • 它们的显示值为 none。
    • 它们是 type="hidden" 的表单元素。
    • 它们的宽度和高度明确设置为 0。
    • 祖先元素被隐藏,因此该元素不会显示在页面上。

    我觉得这可能会更好。

    【讨论】:

    • 我为什么要忽略可见字段?
    • 哎呀,我想在它周围放一个 not() 但我只是看到隐藏,改变了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多