Sempre use o prop()
método para ativar ou desativar elementos ao usar o jQuery (veja abaixo o porquê).
No seu caso, seria:
$("#edit").click(function(event){
event.preventDefault();
$('.inputDisabled').prop("disabled", false); // Element(s) are now enabled.
});
Exemplo de jsFiddle aqui.
Por que usar prop()
quando você pode usar attr()
/ removeAttr()
para fazer isso?
Basicamente, prop()
deve ser usado quando obter ou definir propriedades (como autoplay
, checked
, disabled
e required
entre outros).
Ao usar removeAttr()
, você remove completamente o disabled
próprio atributo - enquanto prop()
apenas define o valor booleano subjacente da propriedade como false.
Embora o que você queira fazer possa ser feito usando attr()
/ removeAttr()
, isso não significa que deve ser feito (e pode causar um comportamento estranho / problemático, como neste caso).
As seguintes extrações (extraídas da documentação do jQuery para prop () ) explicam esses pontos com mais detalhes:
"A diferença entre atributos e propriedades pode ser importante em situações específicas. Antes do jQuery 1.6, o .attr()
método às vezes considerava os valores das propriedades ao recuperar alguns atributos, o que poderia causar comportamento inconsistente. A partir do jQuery 1.6, o .prop()
método fornece uma maneira de recuperar explicitamente valores da propriedade, enquanto
.attr()
recupera atributos ".
"As propriedades geralmente afetam o estado dinâmico de um elemento DOM sem alterar o atributo HTML serializado. Os exemplos incluem a value
propriedade de elementos de entrada, a disabled
propriedade de entradas e botões ou a checked
propriedade de uma caixa de seleção. O .prop()
método deve ser usado para definir disabled
e em checked
vez de o .attr()
método. o .val()
método deve ser usado para obter e definir
value
."