<form id="target">
....
</form>
145
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);
$("#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.
Jeśli chcesz tylko elementy, użyj tego.
źródło
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.
źródło
możesz dodać
a potem możesz zadzwonić
źródło
Aby wyłączyć wszystkie formularze, wystarczy napisać:
jQuery 1.6+
jQuery 1.5 i starsze
źródło
Za pomocą tej jednej linii możesz wyłączyć dowolne pole wejściowe w formularzu
źródło
Ostateczną odpowiedź (obejmującą zmiany w api jQuery w wersji 1.6) udzielił Gnarf
źródło