Respostas:
Nas versões mais antigas você poderia usar attr
. A partir do jQuery 1.6, você deve usar prop
:
$("#target :input").prop("disabled", true);
Desabilitar todos os elementos do formulário dentro de 'target'. Veja :input
:
Corresponde a todos os elementos de entrada, área de texto, seleção e botão.
Se você deseja apenas os <input>
elementos:
$("#target input").prop("disabled", true);
$(this).closest('form').find('input').prop('disabled', true);
. Não tenho certeza se você pode consolidar isso melhor, ainda sou bastante noobish no jQuery.
O exemplo acima está tecnicamente incorreto. De acordo com o jQuery mais recente, use o prop()
método deve ser usado para coisas como desativado. Veja a página da API deles.
Para desativar todos os elementos do formulário dentro de 'target', use o seletor: input que corresponde a todos os elementos de entrada, área de texto, seleção e botão.
$("#target :input").prop("disabled", true);
Se você deseja apenas os elementos, use isso.
$("#target input").prop("disabled", true);
Além disso, a maneira mais concisa é usar o mecanismo de seleção. Portanto, para desativar todos os elementos de formulário em um div ou formulário pai.
$myForm.find(':input:not(:disabled)').prop('disabled',true)
Você pode adicionar
<fieldset class="fieldset">
e então você pode ligar
$('.fieldset').prop('disabled', true);
Para desabilitar todos os formulários, tão fácil quanto escrever:
jQuery 1.6+
$("#form :input").prop("disabled", true);
jQuery 1.5 e abaixo
$("#form :input").attr('disabled','disabled');
Com essa linha, você pode desativar qualquer campo de entrada em um formulário
$('form *').prop('disabled', true);
A resposta definitiva (cobrindo alterações no jQuery api na versão 1.6) foi dada pelo Gnarf
$("#target :input").prop("disabled", true);