$("input").attr("disabled", true);
a partir de ... não sei mais.
É dezembro de 2013 e eu realmente não tenho ideia do que lhe dizer.
Primeiro era sempre .attr()
, depois era sempre .prop()
, então eu voltei aqui, atualizei a resposta e a tornei mais precisa.
Então, um ano depois, o jQuery mudou de idéia novamente e nem quero acompanhar isso.
Para encurtar a história, a partir de agora, esta é a melhor resposta: "você pode usar os dois ... mas isso depende".
Você deve ler esta resposta: https://stackoverflow.com/a/5876747/257493
E suas notas de versão para essa mudança estão incluídas aqui:
Nem .attr () nem .prop () devem ser usados para obter / configurar o valor. Use o método .val () (embora o uso de .attr ("value", "somevalue") continue funcionando, como antes de 1.6).
Resumo de uso preferido
O método .prop () deve ser usado para atributos / propriedades booleanos e para propriedades que não existem em html (como window.location). Todos os outros atributos (aqueles que você pode ver no html) podem e devem continuar sendo manipulados com o método .attr ().
Ou em outras palavras:
".prop = material que não é documento"
".attr" = material do documento
... ...
Que todos possamos aprender uma lição aqui sobre a estabilidade da API ...