Aqui está o meu código:
$("#product1 :checkbox").click(function(){
$(this)
.closest('tr') // Find the parent row.
.find(":input[type='text']") // Find text elements in that row.
.attr('disabled',false).toggleClass('disabled') // Enable them.
.end() // Go back to the row.
.siblings() // Get its siblings
.find(":input[type='text']") // Find text elements in those rows.
.attr('disabled',true).removeClass('disabled'); // Disable them.
});
Como alterno .attr('disabled',false);
?
Não consigo encontrá-lo no Google.
$("input").get(0).disabled = isFalse;
// jsfiddle.net/uAfhjRespostas:
O
.prop()
método aceita dois argumentos:Portanto, neste caso, usei uma função que me forneceu o índice (i) e o valor atual (v), depois retornei o oposto do valor atual, para que o estado da propriedade fosse revertido.
fonte
i
ev
?$('#el').prop('disabled', (i, v) => !v);
Eu acho que para obter a comparabilidade total do navegador
disabled
, defina o valordisabled
ou seja removido!Aqui está um pequeno plugin que eu acabei de criar:
Link de exemplo .
EDIT: atualizado o link / código de exemplo para manter a capacidade de cadeia!
EDIT 2:
Com base no comentário @lonesomeday, aqui está uma versão aprimorada:
fonte
$.fn.toggleDisabled = function(){ return this.each(function(){ this.disabled = !this.disabled; });}
é tudo o que você precisa.disabled
atributo. De qualquer forma, se você puder confirmar que esta é uma solução entre navegadores, atualizarei minha resposta.prop
é o melhor método desde a versão 1.6, como dito por Arne.fonte
Outra opção simples que é atualizada com um clique da caixa de seleção.
HTML:
jQuery:
Em ação: link
fonte
if
bloco com$('#item').prop('disabled', this.checked);
Um pouco mais tarde, e graças a @arne, criei essa pequena função semelhante para manipular onde a entrada deve ser desativada E oculta ou ativada E mostrada:
Então um objeto jQuery (como $ ('input [name = "something"]')) é simplesmente alternado usando:
fonte
Isso é bastante simples com a sintaxe de retorno de chamada de
attr
:fonte