2009-11-26 48 views
19

我正在使用jquery验证所需的字段vaidation。jquery验证只用于可见控件

$("#registerform").validate(); 

这会触发隐藏的控件。

例如:当用户在注册表格中选择Others选项How you find us?时,需要填写其他选项的文本框。

但即使隐藏了控件,也会触发。

如何在jQuery验证中做到这一点?

回答

31

我以前没有使用jQuery验证,但根据the doco有一个可以传递jQuery选择器的忽略字段。通过使用:visible选择器,您应该可以做到这一点。

我相信这是你追求的

$("#registerform").validate({ignore:":not(:visible)"}); 
+0

这正是我需要的。 – Prasad 2009-11-26 08:07:55

+5

不会.validate({ignore:“:hidden”})做同样的事情吗?恕我直言,这是更容易阅读。 – nillls 2011-09-07 09:41:30

+3

@nillis - 更重要的是,它也是当前的默认值。 – TheCloudlessSky 2012-10-07 01:51:50

2

您可以尝试添加:visible到选择本身:

$("#registerform :visible") 
+3

这将使它验证窗体是否可见,而不是表单中的单个字段。 – fyjham 2009-11-26 08:09:05

+0

这一个帮助我,我的选择器是这样的:$('input.required:visible')。each(function(){...}; – Robert 2015-10-02 14:57:39

+0

@fyjham这不是真的,因为两个选择器之间用空格隔开,':可见“会将表单中的所有可见元素。 – Phiter 2017-11-20 11:58:07