Comment vérifier si un élément de saisie est caché ?
Réponses
Trop de publicités?nickf est juste, mais cela aurait le même effet sur une entrée qui est cachée par le style ( style="display:none;"
) ou par son type
attribut ( type="hidden"
).
Considérons le html suivant :
<input id="first" type="hidden" />
<input id="second" type="text" style="display:none;"/>
Les deux entrées ci-dessus ont le :hidden
mais seule l'une d'entre elles possède la fonction hidden
type. En supposant que c'est ce que vous recherchiez (parce que les entrées sont les seuls éléments qui peuvent avoir un type caché et que vous vouliez vérifier si un élément de type élément de saisie est caché, et pas n'importe quel autre élément), la bonne réponse à votre question est de vérifier l'attribut type de l'élément :
document.getElementById('first').getAttribute('type') == 'hidden';// true
// although this input is also hidden, it wouldn't pass the check
document.getElementById('second').getAttribute('type') == 'hidden';// false
et, bien sûr, la méthode Jquery :
$('#first').attr('type') == 'hidden';// true
$('#second').attr('type') == 'hidden';// false
Si vous n'étiez intéressé que par la simple propriété de visibilité, alors la pseudoclasse jquery fait l'affaire :
$('#first').is(':hidden');
// or another way
$('#first:hidden').length != 0;
En getAttribute()
de l'interface Element renvoie la valeur d'un attribut spécifié sur l'élément. Si l'attribut donné n'existe pas, la valeur retournée sera soit null
o ""
(la chaîne vide) ;
pour un élément caché, vous pouvez vérifier le type
de l'élément.
$('#myElement').getAttribute('type')=='hidden'