找到第一个空输入字段

这个简单的选择器在我的表单中找到第一个空文本输入字段,但跳过密码类型输入:

$('input:text[value=""]:first').focus(); 

是否有一个简洁的方式说:文字或:密码在上面的声明?

 $('input:text[value=""]').add('input:password[value=""]').first().focus(); 

我不认为有更好的方法。 这是我在考虑@Hari Das答案之前的想法,该答案有一个问题,但我想到了另一种解决方案:

 $('input:text[value=""],input:password[value=""]').first().focus() 

选择一个更易读的。

这里有一个自定义表达式:

 $.expr[':'].is = function(a,b,c){ return $(a).is(c[3]) } 

允许你使用的is选择器。 你可以通过它实现你想要的:

 $('input[value=""]:is([type=text],[type=password]):first') 

小提琴

通过使用逗号,您可以插入多个选择器。 它像OR运算符一样工作。

 $('input:text[value=""]:first,input:password[value=""]:first') 

可见是跳过任何隐藏字段,例如select2自动生成的输入。

 $('input:text[value=""]:visible:first',input:password[value=""]:first)