在 jQuery 验证中忽略所有隐藏的 div 但不是一个
Posted
技术标签:
【中文标题】在 jQuery 验证中忽略所有隐藏的 div 但不是一个【英文标题】:Ignore all hidden div but not one in jQuery validation 【发布时间】: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)
。
【问题讨论】:
【参考方案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"']
【讨论】:
以上是关于在 jQuery 验证中忽略所有隐藏的 div 但不是一个的主要内容,如果未能解决你的问题,请参考以下文章
如何隐藏一个div类下的所有div并在JQuery中显示一个相同类的div?
jQuery Validate 无法验证 chosen-select元素