jQuery验证插件 - 只在可见时验证隐藏元素
问题描述:
我有一个表单,其中包含“您的帐单地址与您的送货地址相同”字段。如果用户单击单选按钮“否”,则显示隐藏的ul#billingAddress。如果ul#billingAddress中包含的字段可见,那么它是必需的,也就是说ul有display:block。jQuery验证插件 - 只在可见时验证隐藏元素
如何为jquery validate.js编写自定义addMethod,只有当该字段可见时才需要这些自定义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");
这显然是顶起来的。我需要让它适用于var中的每一个。
谢谢!
答
可见检查的问题是这部分:.is('visible')
它需要是:.is(':visible')
使用:visible
selector。
作为替代方案,可以使用ignore
option做你想要的东西更容易一点,像这样:
$("#myForm").validate({
//other options
ignore: ':hidden'
});
此方法可让您使用所需的规则标准,如果你想。
+0
尼克一如既往。 Thx男人! – 2010-08-15 21:54:17
您是否试过让它们不仅看不见,而且还将它们设置为禁用?这只是一个猜测,但由于禁用的表单字段无法传输,所以我期望他们不会进行验证。 – Tomalak 2010-08-15 21:19:35
我不应该让他们禁用,我只是希望他们只在可见时进行验证。除非让他们禁用更容易? – 2010-08-15 21:26:36
我的意思是让他们都看不见*和*禁用。用jQuery,这很简单。 – Tomalak 2010-08-15 21:28:10