Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Find first empty input field

Tags:

jquery

This simple selector finds the first empty text input field in my form but skips over password type inputs:

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

Is there a neat way to say :text or :password in the above statement?

like image 826
cneeds Avatar asked Apr 23 '14 17:04

cneeds


2 Answers

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

I don't think there is a better way. That's what I thought before taking a look at @Hari Das answer which has an issue but brings alternative solution to my mind:

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

Choose the one which is more readable to you.

like image 111
ElmoVanKielmo Avatar answered Oct 08 '22 15:10

ElmoVanKielmo


Here a little custom expression :

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

That allow you to use is in a selector. You can achieve what you want with that :

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

Fiddle

like image 43
Karl-André Gagnon Avatar answered Oct 08 '22 15:10

Karl-André Gagnon