Mit der Einführung der Requisitenmethode muss ich nun die akzeptierte Methode zum Deaktivieren eines Kontrollkästchens kennen. Ist es:
$('input').filter(':checkbox').removeAttr('checked');
oder
$('input').filter(':checkbox').prop('checked',false);
Antworten:
jQuery 3
Wie von jQuery 3,
removeAttr
ist nicht festgelegt , die entsprechende Eigenschaft auffalse
mehr:Änderungsprotokoll
Daher ist nur
.prop('checked',false)
bei Verwendung dieser Version der richtige Weg.Ursprüngliche Antwort (ab 2011):
Für Attribute mit zugrunde liegenden booleschen Eigenschaften (von denen
checked
eine eins ist) wirdremoveAttr
die zugrunde liegende Eigenschaft automatisch auf festgelegtfalse
. (Beachten Sie, dass dies zu den in jQuery 1.6.1 hinzugefügten "Korrekturen" für die Abwärtskompatibilität gehört.)Beides wird also funktionieren ... aber das zweite Beispiel, das Sie (mit
prop
) gegeben haben, ist das korrektere der beiden. Wenn Sie das Kontrollkästchen deaktivieren möchten, möchten Sie die Eigenschaft und nicht das Attribut wirklich beeinflussen , und Sie müssen dies nicht durchgehenremoveAttr
.quelle
removeProp()
] nicht, um native Eigenschaften wie aktiviert, deaktiviert oder ausgewählt zu entfernen. Dadurch wird die Eigenschaft vollständig entfernt und kann nach dem Entfernen nicht mehr zum Element hinzugefügt werden. Verwenden Sie.prop()
diese Option , um diese Eigenschaften auf false zu setzen stattdessen."removeProp
ist wirklich nur für die Verwendung mit benutzerdefinierten Eigenschaften vorgesehen.use
checked
: true, false Eigenschaft des Kontrollkästchens.jQuery:
quelle
Ich empfehle, sowohl prop als auch attr zu verwenden, da ich Probleme mit Chrome hatte und es mit beiden Funktionen gelöst habe.
quelle
$("input[type='checkbox'], input[type='radio']").prop("checked", false).attr("checked", false).removeAttr("checked");
Eine andere Alternative, um dasselbe zu tun, besteht darin, nach dem Attribut type = checkbox zu filtern :
oder
Denken Sie daran, dass der Unterschied zwischen Attributen und Eigenschaften in bestimmten Situationen wichtig sein kann. Vor jQuery 1.6 berücksichtigte die Methode .attr () manchmal Eigenschaftswerte, wenn einige Attribute abgerufen wurden, was zu inkonsistentem Verhalten führen kann. Ab jQuery 1.6 bietet die .prop () -Methode eine Möglichkeit, Eigenschaftswerte explizit abzurufen, während .attr () Attribute abruft.
Erfahren Sie mehr ...
quelle