Wie kann ich das Ereignis von <input type="checkbox" />
mit jQuery abfangen/abhaken?Fangen überprüfte Änderungsereignis einer Checkbox
Antwort
<input type="checkbox" id="something" />
$("#something").click(function(){
if($(this).is(':checked')) alert("checked");
});
Edit: Dadurch wird nicht fangen, wenn das Kontrollkästchen aus anderen Gründen als einem Klick ändert sich, wie die Tastatur. Um dieses Problem zu vermeiden, hören Sie statt click
.
Zur Überprüfung/unchecking programmatisch, werfen Sie einen Blick auf Why isn't my checkbox change event triggered?
document.getElementById ('something') zu testen. Checked works, warum $ ('# something') nicht arbeiten? – omg
Ihr Code fehlt ein Paran und sollte wirklich die jQuery-Methode verwenden, um den Prüfstatus zu erhalten. –
Da $ ('# something') ein jQuery-Objekt und keine ElementNode zurückgibt –
das Click-Ereignis mit MSIE für beste Kompatibilität verwenden
$(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>
Hey! Kumpel, was machst du hier? – omg
Sieht aus wie eine Bereichsauswahl (dh, überprüfe die erster Punkt, halte die Shift-Taste gedrückt, überprüfe die letzte, und alle dazwischen werden überprüft.) Das ist jedoch viel mehr, als die Frage verlangt: Es fehlt jedoch ein Code wie checkUncheckAll(). – joelsand
Verwenden Sie unter Code-Snipp et um dies zu erreichen .:
$('#checkAll').click(function(){
$("#checkboxes input").attr('checked','checked');
});
$('#UncheckAll').click(function(){
$("#checkboxes input").attr('checked',false);
});
Oder Sie können das gleiche mit einzelnen 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 Demo: http://jsfiddle.net/creativegala/hTtxe/
Der Klick ein Etikett beeinflussen, wenn wir eine haben angebracht zur Eingabe-Checkbox?
Ich denke, dass besser ist die .change() Funktion
<input type="checkbox" id="something" />
$("#something").change(function(){
alert("state changed");
});
Für JQuery 1.7+ Gebrauch zu verwenden:
$('input[type=checkbox]').on('change', function() {
...
});
Nach meiner Erfahrung, ich habe die Veranstaltungs-current musste nutzen :
$("#dingus").click(function (event) {
if ($(event.currentTarget).is(':checked')) {
//checkbox is checked
}
});
Dieser Code macht, was Ihr Bedürfnis:
<input type="checkbox" id="check" >check it</input>
$("#check").change(function(){
if($(this).is(':checked')) {
alert("checked");
}else{
alert("unchecked");
}
});
Auch Sie können es auf jsfiddle
- 1. ZF2 überprüfte Option auf einer Checkbox
- 2. Wie einer MVC-Checkbox Änderungsereignis in JQUERY
- 3. Programmatically Ändern Checkbox nicht Änderungsereignis
- 4. Checkbox Überprüfte Probleme in win32 api C++
- 5. Yii2 Checkbox Liste, nicht überprüfte Modellwerte
- 6. Wird ein Unterklassen-Catch-Block eine überprüfte Parent-Exception fangen?
- 7. Trigger Änderungsereignis eines Kontrollkästchens
- 8. Überprüfte HTML-Formularboxen sind NULL
- 9. entfernen Nicht überprüfte Elemente in einer Baumansicht
- 10. Dynamische Eingabe Kontrollkästchen bei Änderungsereignis
- 11. Überprüfte Elemente in Yii2 checkboxList
- 12. Wie man überprüfte Radiobuttons
- 13. chrome.devtools.inspectedWindow Änderungsereignis
- 14. überprüfte Listenansicht Elemente
- 15. So öffnen Sie überprüfte Knoten jstree
- 16. Ausnahmebehandlung Versuch Fangen in Fangen
- 17. p: selectOneMenu Ajax Änderungsereignis nicht funktioniert
- 18. Trigger Änderungsereignis von Dropdown
- 19. Ionic 2 Picker Änderungsereignis
- 20. Verhindern Standard bei Änderungsereignis
- 21. Änderungsereignis in Microsoft.Office.Interop.Word
- 22. Textbox Änderungsereignis - jquery
- 23. jQuery - Reset Änderungsereignis
- 24. ACE Editor Änderungsereignis
- 25. jQuery rowcount Änderungsereignis
- 26. versteckter Eingang Änderungsereignis
- 27. Abrufen von Ereignissen aus dem WPF Überprüfte ComboBox
- 28. AJAX mit einer Checkbox
- 29. Überprüfte Eigenschaft der Radio-Taste
- 30. So ändern Sie die überprüfte Tönungsfarbe einer CheckedTextView mit Hexadezimalwert
Wenn Sie eine relativ neue Version von JQuery verwenden, würde ich die .on verwenden ('change', function() {...}) wie erwähnt in @Daniel De Leons Antwort unten. Ein Vorteil ist, dass der Ereignis-Listener "on" an dynamisch erzeugtes HTML bindet. – BLang