Wie kann ich das Ereignis zum Überprüfen / Deaktivieren <input type="checkbox" />mit jQuery abfangen ?
Wie kann ich das Ereignis zum Überprüfen / Deaktivieren <input type="checkbox" />mit jQuery abfangen ?
Antworten:
<input type="checkbox" id="something" />
$("#something").click( function(){
if( $(this).is(':checked') ) alert("checked");
});
Bearbeiten: Dies wird nicht erfasst, wenn sich das Kontrollkästchen aus anderen Gründen als einem Klick ändert, z. B. über die Tastatur. Um dieses Problem zu vermeiden, hören Sie changestatt click.
Informationen zum programmgesteuerten Aktivieren / Deaktivieren finden Sie unter Warum wird mein Kontrollkästchen-Änderungsereignis nicht ausgelöst?
changeanstatt zu klicken. Ich aktualisiere die Antwort
Der Klick wirkt sich auf eine Beschriftung aus, wenn eine an das Eingabe-Kontrollkästchen angehängt ist.
Ich denke, dass es besser ist, die .change () -Funktion zu verwenden
<input type="checkbox" id="something" />
$("#something").change( function(){
alert("state changed");
});
Verwenden Sie den Selected: Selected, um den Status des Kontrollkästchens zu bestimmen:
$('input[type=checkbox]').click(function() {
if($(this).is(':checked')) {
...
} else {
...
}
});
Für JQuery 1.7+ verwenden Sie:
$('input[type=checkbox]').on('change', function() {
...
});
Verwenden Sie dazu das folgende Code-Snippet:
$('#checkAll').click(function(){
$("#checkboxes input").attr('checked','checked');
});
$('#UncheckAll').click(function(){
$("#checkboxes input").attr('checked',false);
});
Oder Sie können dasselbe mit einem einzigen Kontrollkästchen tun:
$('#checkAll').click(function(e) {
if($('#checkAll').attr('checked') == 'checked') {
$("#checkboxes input").attr('checked','checked');
$('#checkAll').val('off');
} else {
$("#checkboxes input").attr('checked', false);
$('#checkAll').val('on');
}
});
Für die Demo: http://jsfiddle.net/creativegala/hTtxe/
Nach meiner Erfahrung musste ich das aktuelle Ziel der Veranstaltung nutzen:
$("#dingus").click( function (event) {
if ($(event.currentTarget).is(':checked')) {
//checkbox is checked
}
});
Dieser Code macht, was Sie brauchen:
<input type="checkbox" id="check" >check it</input>
$("#check").change( function(){
if( $(this).is(':checked') ) {
alert("checked");
}else{
alert("unchecked");
}
});
Sie können es auch auf jsfiddle überprüfen
Verwenden Sie das Klickereignis, um die beste Kompatibilität mit MSIE zu erzielen
$(document).ready(function() {
$("input[type=checkbox]").click(function() {
alert("state changed");
});
});
$(document).ready(function(){
checkUncheckAll("#select_all","[name='check_boxes[]']");
});
var NUM_BOXES = 10;
// last checkbox the user clicked
var last = -1;
function check(event) {
// in IE, the event object is a property of the window object
// in Mozilla, event object is passed to event handlers as a parameter
event = event || window.event;
var num = parseInt(/box\[(\d+)\]/.exec(this.name)[1]);
if (event.shiftKey && last != -1) {
var di = num > last ? 1 : -1;
for (var i = last; i != num; i += di)
document.forms.boxes['box[' + i + ']'].checked = true;
}
last = num;
}
function init() {
for (var i = 0; i < NUM_BOXES; i++)
document.forms.boxes['box[' + i + ']'].onclick = check;
}
HTML:
<body onload="init()">
<form name="boxes">
<input name="box[0]" type="checkbox">
<input name="box[1]" type="checkbox">
<input name="box[2]" type="checkbox">
<input name="box[3]" type="checkbox">
<input name="box[4]" type="checkbox">
<input name="box[5]" type="checkbox">
<input name="box[6]" type="checkbox">
<input name="box[7]" type="checkbox">
<input name="box[8]" type="checkbox">
<input name="box[9]" type="checkbox">
</form>
</body>