$("input").attr("disabled", true);
od ... już nie wiem.
Jest grudzień 2013 roku i naprawdę nie mam pojęcia, co powiedzieć.
Najpierw zawsze .attr()
, potem zawsze .prop()
, więc wróciłem tutaj, zaktualizowałem odpowiedź i uściśliłem ją.
Rok później jQuery ponownie zmieniło zdanie i nawet nie chcę tego śledzić.
Krótko mówiąc, w tej chwili jest to najlepsza odpowiedź: „możesz używać obu ... ale to zależy”.
Zamiast tego powinieneś przeczytać tę odpowiedź: https://stackoverflow.com/a/5876747/257493
A ich informacje o wydaniu dotyczące tej zmiany są zawarte tutaj:
Ani .attr (), ani .prop () nie powinny być używane do pobierania / ustawiania wartości. Zamiast tego użyj metody .val () (chociaż użycie .attr ("value", "somevalue") będzie nadal działać, tak jak przed 1.6).
Podsumowanie preferowanego wykorzystania
Metoda .prop () powinna być używana dla atrybutów / właściwości logicznych oraz dla właściwości, które nie istnieją w html (np. Window.location). Wszystkie inne atrybuty (te, które można zobaczyć w html) mogą i powinny być nadal modyfikowane za pomocą metody .attr ().
Innymi słowy:
„.prop = treści nie będące dokumentami”
„.attr” = dokument
... ...
Obyśmy wszyscy nauczyli się lekcji o stabilności API ...
Działający kod z moich źródeł:
HTML WORLD
JS WORLD
źródło
As of jQuery 1.6, the .attr() method returns undefined for attributes that have not been set. To retrieve and change DOM properties such as the checked, selected, or disabled state of form elements, use the .prop() method
Jeśli używasz jQuery, istnieje kilka różnych sposobów ustawienia wyłączonego atrybutu.
źródło
$element.eq(0)[0].disabled = true;
? :-PWszystkie powyższe rozwiązania są całkowicie poprawnymi rozwiązaniami. Wybierz ten, który najlepiej odpowiada Twoim potrzebom.
źródło
Możesz pobrać element DOM i bezpośrednio ustawić wyłączoną właściwość.
lub jeśli jest więcej niż jeden, możesz użyć,
each()
aby ustawić je wszystkie:źródło
Po prostu użyj
attr()
metody jQueryźródło
.removeAttr('disabled');
Ponieważ pytanie dotyczyło tego, jak to zrobić z JS, zapewniam implementację wanilii JS.
źródło