58 votes

Comment sélectionner toutes les zones de texte et les boîtes de texte à l'aide de jQuery ?

Comment puis-je sélectionner toutes les zones de texte et tous les espaces de texte, par ex :

<input type='text' />

et

<textarea></textarea>

sur une page et ont la propriété style.width="90%"; qui leur est appliqué ?

142voto

roryf Points 14520
$('input[type=text], textarea').css({width: '90%'});

qui utilise les sélecteurs CSS standard, jQuery dispose également d'un ensemble de filtres pseudo-sélecteurs pour divers éléments de formulaire, par exemple :

$(':text').css({width: '90%'});

correspondra à tous les <input type="text"> éléments. Voir Documentation sur les sélecteurs pour plus d'informations.

6 votes

Le sélecteur de texte ne sélectionne pas les zones de texte (du moins dans la dernière version de jQuery). Je voulais aussi ajouter quelque chose de la documentation de jQuery à propos du sélecteur :text : "Parce que :text est une extension de jQuery et ne fait pas partie de la spécification CSS, les requêtes utilisant :text ne peuvent pas profiter de l'amélioration des performances fournie par la méthode native DOM querySelectorAll(). Pour de meilleures performances dans les navigateurs modernes, utilisez plutôt [type="text"]."

0 votes

Jquery plans drop sizzle en v4.0 ( blog.jquery.com/2019/04/10/jquery-3-4-0-released ). Dans cette optique, les sélecteurs spéciaux de jquery doivent être utilisés avec précaution pour éviter les problèmes de compatibilité.

14voto

Tobias Baaz Points 884

Les cases de mot de passe sont également des zones de texte, donc si vous en avez besoin :

$("input[type='text'], textarea, input[type='password']").css({width: "90%"});

et bien que l'entrée des fichiers soit un peu différente, vous pouvez vouloir les inclure aussi (par exemple, pour la cohérence visuelle) :

$("input[type='text'], textarea, input[type='password'], input[type='file']").css({width: "90%"});

1voto

Rob Points 1287
$("**:**input[type=text], :input[type='textarea']").css({width: '90%'});

0 votes

Pourquoi poster deux fois la même réponse ? Si les différences mineures ont quelque chose de spécial, expliquez-les !

0 votes

J'apprécie personnellement de connaître le pseudo-sélecteur :input de jQuery. +1 pour m'avoir montré quelque chose de nouveau.

3 votes

:input[type='textarea'] ne fonctionne pas avec la dernière version de jQuery. Il faut utiliser textarea.

1voto

muni Points 20
names = [];
$('input[name=text], textarea').each(
    function(index){  
        var input = $(this);
        names.push( input.attr('name') );
        //input.attr('id');
    }
);

il sélectionne tous les textboxes et textarea dans votre DOM, où la fonction $.each itère pour fournir le nom de l'élément ecah.

0voto

Roko C. Buljan Points 46488

Il suffit d'utiliser $(":input")

Exemple : désactivation de toutes les entrées (textarea, input text, etc) :

$(":input").prop("disabled", true);

<form>
  <textarea>Tetarea</textarea>
  <input type="text" value="Text">
  <label><input type="checkbox"> Checkbox</label>
</form>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X