【问题标题】:Ignore all hidden div but not one in jQuery validation在 jQuery 验证中忽略所有隐藏的 div 但不是一个
【发布时间】:2013-12-15 18:10:00
【问题描述】:

我在表单中使用 jQuery 验证 http://jqueryvalidation.org/documentation/

我想将验证添加到我的所有字段,但我想忽略具有 my_item 类的隐藏 div

这是我的 jQuery:

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

如何从这种忽略情况中排除具有 my_item 类的 div。比如$(":hidden").not(.my_item)

【问题讨论】:

    标签: jquery jquery-validate hidden


    【解决方案1】:

    您可以使用 :not() 选择器:

    ignore: ":hidden:not(.my_item)"
    

    【讨论】:

    • 谢谢。我也可以这样做吗 :hidden:not(.item1, .item2);
    • 不过恐怕不行。因为现在它根本不验证 my_item。
    • 这个答案还有效吗?即使无效,我使用表单的任何“忽略”设置都会被发送。我试过忽略:[],忽略:“”,忽略:':hidden:not(#id_myimput)。总是相同的结果:我在字段上看到错误通知,但无论如何都提交了表单。删除任何“忽略”设置修复验证
    • 谢谢。这有助于在 materializecss 框架中抓取隐藏的选择进行验证。这是一个问题,因为我还有一些动态切换/隐藏内容(想想国家 -> 州/省选择框)。使用此规则,我至少能够拾取隐藏的选择,然后将它们传递给我自己的自定义“选择检查器”验证方法,该方法将首先查看选择是否在舞台上,然后从那里继续。
    • @bluantinoo 它确实有效,但您需要将其作为 validate 方法的一个选项,而不是在您的规则对象中。在查看文档之前,我遇到了问题。
    【解决方案2】:

    接受的答案非常好,但是当您需要比 jQuery 选择器提供的更多控制时。 You could pass a function that tests each element.

    例如:

    ignore: function (index, el) {
       var $el = $(el);
    
       if ($el.hasClass('always-validate')) {
           return false;
       }
    
       // Default behavior
       return $el.is(':hidden');
    },
    

    【讨论】:

    • 这太完美了,谢谢
    • 正是我想要的。
    【解决方案3】:

    如果你的字段没有类名,你可以根据它的名字忽略它:

    ignore: ['name = "field_name"']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-09
      • 1970-01-01
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多