3 Stimmen

Deaktivieren Sie das Kontrollkästchen, das vom Benutzer aktiviert wurde.

Wenn ich Kontrollkästchen und Optionsfelder aktiviere/deaktiviere, setzt der Browser das Attribut 'checked' nicht. Also, wenn ich versuche, ein Kontrollkästchen mit jQuery zu deaktivieren:

$('#tab2 input').removeAttr('checked');

funktioniert es nicht. Es funktioniert, wenn das Kontrollkästchen in meinem JavaScript-Code aktiviert war. Wie kann ich ein Kontrollkästchen deaktivieren, das bereits vom Benutzer aktiviert wurde?

5voto

RightSaidFred Punkte 10871

Sie setzen eine Eigenschaft, verwenden Sie also .prop() in jQuery 1.6.

$('#tab2 input').prop('checked',false);

Oder wenn es nur ein input gibt, ändern Sie die Eigenschaft des Elements direkt.

$('#tab2 input')[0].checked = false;

Wenn jQuery 1.6.1 veröffentlicht wird, oder aktualisieren Sie auf jQuery 1.6.1, und Sie können wieder .attr() verwenden, um Eigenschaften zu setzen, aber .prop() bleibt die bessere Möglichkeit, es zu tun.

Aus den Veröffentlichungshinweisen:

Insbesondere werden boolesche Attribute wie checked, selected, readonly und disabled in 1.6.1 so behandelt, wie sie es in jQuery-Versionen vor 1.6 waren. Dies bedeutet, dass Code wie

$(“:checkbox”).attr(“checked”, true);
$(“option”).attr(“selected”, true);
$(“input”).attr(“readonly”, true);
$(“input”).attr(“disabled”, true);

oder sogar:

if ( $(“:checkbox”).attr(“checked”) ) { /* Etwas tun */ }

in 1.6.1 nicht geändert werden müssen, um wie zuvor erwartet zu funktionieren.

3voto

James Montagne Punkte 75564
$('#tab2 input').attr('checked', false);

2voto

thinklinux Punkte 1218
$('input[name=foo]').prop('checked', false);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X