1

我正在尝试为客户编写一些特殊的验证代码。我想在 jquery 的 find 函数中将几个选择器串在一起,这可能吗?

例如,我想说的是,在当前可见的字段集中,找到所有 type=text 且具有类“-required”的输入字段,还找到所有也具有类“-required”的 textarea 字段.

我正在尝试这个,但它不起作用,它只选择 Textarea 字段

var reqButEmpty = $('fieldset:visible')
.find('input[type="text", class*="-required",textarea[class*="-required"]')
.filter(function()
4

2 回答 2

4
var reqButEmpty = $('fieldset:visible')
 .find('input[type="text"].-required, textarea.-required')....

你有几个错误:

  • 您没有终止属性选择器:[type="text", ...
  • ,class*=正在寻找类型类的元素, ( <class>)
  • 如果你想要一个类选择器,只需在它前面加上一个点。

更新:

var reqButEmpty = $('fieldset:visible')
 .find('input[type="text"], textarea').filter(function(){
     return this.className.indexOf("-required") >= 0;
 });

或者正如@cliffs of insanity所建议的那样:

var reqButEmpty = $('fieldset:visible')
 .find('input[type="text"], textarea').filter('[class*="-required"]');
于 2012-05-13T01:30:55.503 回答
3

您可以,但不能以您尝试的方式

.find('input[type="text"][class*="-required"],textarea[class*="-required"]')

为了获得“和”行为,我们在同一个元素选择器上使用两个单独的“属性”选择器。

然后我们使用,多重选择器来获取textarea.

我还假设这-required是类名的一部分,而不是全部。一些 HTML 参考会有所帮助。

于 2012-05-13T01:31:47.143 回答