<form id="target">
....
</form>
<form id="target">
....
</form>
Antworten:
In älteren Versionen könnten Sie verwenden attr
. Ab jQuery 1.6 sollten Sie prop
stattdessen Folgendes verwenden :
$("#target :input").prop("disabled", true);
So deaktivieren Sie alle Formularelemente in 'Ziel'. Siehe :input
:
Entspricht allen Eingabe-, Textbereichs-, Auswahl- und Schaltflächenelementen.
Wenn Sie nur die <input>
Elemente wollen :
$("#target input").prop("disabled", true);
$(this).closest('form').find('input').prop('disabled', true);
. Ich bin mir nicht sicher, ob Sie das besser konsolidieren können, aber ich bin bei jQuery immer noch ziemlich noobisch.
Das obige Beispiel ist technisch falsch. Gemäß der neuesten jQuery sollte die prop()
Methode für Dinge wie deaktiviert verwendet werden. Siehe ihre API-Seite.
Um alle Formularelemente innerhalb von 'target' zu deaktivieren, verwenden Sie die Eingabeauswahl:, die allen Eingabe-, Textbereichs-, Auswahl- und Schaltflächenelementen entspricht.
$("#target :input").prop("disabled", true);
Wenn Sie nur die Elemente möchten, verwenden Sie diese.
$("#target input").prop("disabled", true);
Der prägnantere Weg ist auch die Verwendung der Selektor-Engine. So deaktivieren Sie alle Formularelemente in einem div oder übergeordneten Formular.
$myForm.find(':input:not(:disabled)').prop('disabled',true)
Du kannst hinzufügen
<fieldset class="fieldset">
und dann können Sie anrufen
$('.fieldset').prop('disabled', true);
So deaktivieren Sie alle Formulare, so einfach wie das Schreiben:
jQuery 1.6+
$("#form :input").prop("disabled", true);
jQuery 1.5 und niedriger
$("#form :input").attr('disabled','disabled');
Mit dieser einen Zeile können Sie jedes Eingabefeld in einem Formular deaktivieren
$('form *').prop('disabled', true);
Die endgültige Antwort (Änderungen an der jQuery-API in Version 1.6) wurde von Gnarf gegeben
$("#target :input").prop("disabled", true);