Réponses:
Dans les anciennes versions, vous pouvez utiliser attr
. À partir de jQuery 1.6, vous devriez utiliser à la prop
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 input, textarea, select et button.
Si vous ne voulez que les <input>
éléments:
$("#target input").prop("disabled", true);
$(this).closest('form').find('input').prop('disabled', true);
. Je ne sais pas si vous pouvez mieux consolider cela, je ne suis toujours pas satisfait de jQuery.
L'exemple ci-dessus est techniquement incorrect. Selon le dernier jQuery, utilisez la prop()
méthode pour des choses comme désactivé.Voir leur page API.
Pour désactiver tous les éléments de formulaire à l'intérieur de 'target', 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);
La manière la plus concise est également d'utiliser leur moteur de sélection. Donc, pour désactiver tous les éléments de formulaire dans un parent div ou formulaire.
$myForm.find(':input:not(:disabled)').prop('disabled',true)
vous pouvez ajouter
<fieldset class="fieldset">
et ensuite vous pouvez appeler
$('.fieldset').prop('disabled', true);
Pour désactiver tous les formulaires, aussi simple que d'écrire:
jQuery 1.6+
$("#form :input").prop("disabled", true);
jQuery 1.5 et inférieur
$("#form :input").attr('disabled','disabled');
Avec cette ligne, vous pouvez désactiver n'importe quel champ de saisie dans un formulaire
$('form *').prop('disabled', true);
La réponse définitive (couvrant les modifications apportées à jQuery api à la version 1.6) a été donnée par Gnarf
$("#target :input").prop("disabled", true);