Hier ist mein Code:
$("#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.
});
Wie schalte ich um? .attr('disabled',false);
?
Ich kann es anscheinend nicht bei Google finden.
$("input").get(0).disabled = isFalse;
// jsfiddle.net/uAfhjAntworten:
Die
.prop()
Methode akzeptiert zwei Argumente:In diesem Fall habe ich eine Funktion verwendet, die mir den Index (i) und den aktuellen Wert (v) geliefert hat. Dann habe ich das Gegenteil des aktuellen Werts zurückgegeben, sodass der Eigenschaftsstatus umgekehrt wird.
quelle
i
undv
?$('#el').prop('disabled', (i, v) => !v);
Ich denke , um eine vollständige Browser-Vergleichbarkeit zu erhalten,
disabled
sollte dies durch den Wert festgelegtdisabled
oder entfernt werden!Hier ist ein kleines Plugin, das ich gerade gemacht habe:
Beispiellink .
BEARBEITEN: Der Beispiellink / Code wurde aktualisiert, um die Verkettbarkeit aufrechtzuerhalten!
BEARBEITEN 2:
Basierend auf dem Kommentar von @lonesomeday ist hier eine erweiterte Version:
quelle
$.fn.toggleDisabled = function(){ return this.each(function(){ this.disabled = !this.disabled; });}
ist alles, was du brauchst.disabled
Attribute zu setzen / zu setzen . Wie auch immer, wenn Sie bestätigen können, dass dies eine browserübergreifende Lösung ist. Ich werde meine Antwort aktualisieren.prop
ist die bessere Methode seit 1.6, wie von Arne gesagt.quelle
Eine weitere einfache Option, die mit einem Klick auf das Kontrollkästchen aktualisiert wird.
HTML:
jQuery:
In Aktion: Link
quelle
if
Block los mit$('#item').prop('disabled', this.checked);
Eine Weile später und dank @arne habe ich diese ähnliche kleine Funktion erstellt, um zu handhaben, wo die Eingabe deaktiviert UND ausgeblendet oder aktiviert UND angezeigt werden soll:
Dann wird ein jQuery-Objekt (wie $ ('input [name = "Something"]')) einfach umgeschaltet, indem:
quelle
Dies ist ziemlich einfach mit der Rückrufsyntax von
attr
:quelle