web-dev-qa-db-fra.com

Comment désactiver tous les <input> dans un formulaire avec jQuery?

<form id="target">
....
</form>
132
omg

Dans les anciennes versions, vous pouviez utiliser attr . Depuis jQuery 1.6, vous devriez utiliser prop à la place:

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

Pour désactiver tous les éléments de formulaire à l'intérieur de 'cible'. Voir :input :

Correspond à tous les éléments d'entrée, de zone de texte, de sélection et de bouton.

Si vous voulez seulement le <input> éléments:

$("#target input").prop("disabled", true);
259
cletus

L'exemple ci-dessus est techniquement incorrect. Selon la dernière version de jQuery, utilisez la méthode prop() qui devrait être utilisée pour des opérations telles que disabled. Voir leur page API.

Pour désactiver tous les éléments de formulaire à l'intérieur de 'cible', utilisez le sélecteur: input qui correspond à tous les éléments input, textarea, select et button.

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

Si vous ne voulez que les éléments, utilisez ceci.

$("#target input").prop("disabled", true);
38
MetaSkills

Aussi, la manière la plus concise est d'utiliser leur moteur de sélecteurs. Donc, pour désactiver tous les éléments de formulaire dans un div ou parent de formulaire.

$myForm.find(':input:not(:disabled)').prop('disabled',true)
14
MetaSkills

vous pouvez ajouter

 <fieldset class="fieldset">

et alors vous pouvez appeler

 $('.fieldset').prop('disabled', true);
9
Otto Kanellis

Pour désactiver tout formulaire, il suffit d’écrire:

jQuery 1.6 +

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

jQuery 1.5 et moins

$("#form :input").attr('disabled','disabled');
8
Angel Cuenca

Avec cette ligne, vous pouvez désactiver n'importe quel champ de saisie dans un formulaire.

$('form *').prop('disabled', true);
6
Samir Rahimy