<form id="target">
....
</form>
<form id="target">
....
</form>
Odpowiedzi:
W starszych wersjach możesz użyć attr
. Od jQuery 1.6 powinieneś używać prop
zamiast tego:
$("#target :input").prop("disabled", true);
Aby wyłączyć wszystkie elementy formularza wewnątrz „celu”. Zobacz :input
:
Dopasowuje wszystkie elementy wejściowe, tekstowe, zaznaczania i przyciski.
Jeśli chcesz tylko <input>
elementy:
$("#target input").prop("disabled", true);
$(this).closest('form').find('input').prop('disabled', true);
. Nie jestem pewien, czy możesz to lepiej skonsolidować, nadal jestem raczej noobem w jQuery.
Powyższy przykład jest technicznie niepoprawny. Zgodnie z najnowszą wersją jQuery, prop()
metoda powinna być używana do takich rzeczy, jak wyłączone. Zobacz ich stronę API.
Aby wyłączyć wszystkie elementy formularza wewnątrz 'target', użyj selektora: input, który pasuje do wszystkich elementów input, textarea, select i button.
$("#target :input").prop("disabled", true);
Jeśli chcesz tylko elementy, użyj tego.
$("#target input").prop("disabled", true);
Również bardziej zwięzłym sposobem jest użycie ich silnika selektorów. Tak więc, aby wyłączyć wszystkie elementy formularza w div lub form rodzicu.
$myForm.find(':input:not(:disabled)').prop('disabled',true)
możesz dodać
<fieldset class="fieldset">
a potem możesz zadzwonić
$('.fieldset').prop('disabled', true);
Aby wyłączyć wszystkie formularze, wystarczy napisać:
jQuery 1.6+
$("#form :input").prop("disabled", true);
jQuery 1.5 i starsze
$("#form :input").attr('disabled','disabled');
Za pomocą tej jednej linii możesz wyłączyć dowolne pole wejściowe w formularzu
$('form *').prop('disabled', true);
Ostateczną odpowiedź (obejmującą zmiany w api jQuery w wersji 1.6) udzielił Gnarf
$("#target :input").prop("disabled", true);