jQuery验证插件 - 仅在可见时验证隐藏元素

Dir*_*ign 9 validation jquery

我的表单中有"您的帐单地址与送货地址相同"字段.如果用户单击单选按钮"否",则显示隐藏的ul#billingAddress.ul #countingAddress中包含的字段是可见的,如果ul具有display:block.

如何为jquery validate.js编写自定义addMethod,只有在字段可见时才需要这些?这就是我没有用的东西.

$.validator.addMethod ("BillingSameAsShipping", function(value, element) {
   var billingFields = ['billingAddress1','billingAddress2','billingCity','billingState','bilingZip']
   if ($("#billingAddress").is('visible') && billingFields.val('') {
       return false;
   } else 
       return true;
 }, "Please fill in the required billing information" );
Run Code Online (Sandbox Code Playgroud)

这显然是顶了.我需要让它适用于var中的每一个.

谢谢!

Nic*_*ver 19

可见检查的问题是这一部分:.is('visible') 它需要是:.is(':visible')使用:visible选择器.


作为替代方案,您可以使用该ignore选项来执行您想要的更简单的操作,如下所示:

$("#myForm").validate({
  //other options
  ignore: ':hidden'
});
Run Code Online (Sandbox Code Playgroud)

如果需要,此方法允许您使用标准的必需规则.