web-dev-qa-db-fra.com

jQuery - vérifier si une entrée n'est pas un champ de sélection

Comment savoir si un champ de saisie est autre chose qu'un select?

J'ai essayé avec if($(el).not("select")) et j'obtiens aussi les sélections ...

39
Alex
if(!$(el).is("select")) {
    // the input field is not a select
}
90
Darin Dimitrov

$(el).not("select") vous donne un tableau. Le tableau donne toujours true dans les expressions booléennes. Mais une fois que vous ne l'avez pas appliqué, ce tableau d'éléments ne contiendra pas de sélections. Voir travail exemple .

3
gor

La méthode .not() renvoie un nouvel objet jQuery avec tout de l'objet d'origine qui ne correspond pas au sélecteur.
Vous ne pouvez pas simplement l'utiliser dans une instruction if comme celle-ci.

À la place, vous utilisez le .is, qui vérifie si l'élément correspond à un sélecteur et renvoie un booléen.

if (!$(el).is('select'))
2
SLaks

Qu'en est-il de donner le <select> marque une classe:

$(el + ":not('.select')")
2
Barrie Reader
if ($(el)[0].nodeName != 'select')
2
Syl
if($(el).selectedIndex)

S'il a une propriété SelectedIndex, c'est un <SELECT>