如何使用jQuery捕获/取消选中<input type="checkbox" />
事件?检查复选框的更改事件
回答
<input type="checkbox" id="something" />
$("#something").click(function(){
if($(this).is(':checked')) alert("checked");
});
编辑:这样做时复选框其他原因比点击变化,比如使用键盘不会赶上。为避免此问题,请收听change
而不是click
。
为了检查/编程取消选中,看看Why isn't my checkbox change event triggered?
document.getElementById('something')。checked works,why $('#something')。checked不行? – omg 2009-09-21 15:52:45
你的代码缺少一个paran,并且确实应该使用获取检查状态的jQuery方法。 – 2009-09-21 15:53:16
因为$('#something')返回一个jQuery对象而不是ElementNode – 2009-09-21 15:53:45
$(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>
使用下面的代码snipp等来实现这一目标。:
$('#checkAll').click(function(){
$("#checkboxes input").attr('checked','checked');
});
$('#UncheckAll').click(function(){
$("#checkboxes input").attr('checked',false);
});
或者你也可以做同样的单复选框:
$('#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');
}
});
的点击会影响标签,如果我们有一个附到输入复选框?
我认为这是更好地使用.change()函数
3210的jQuery 1.7+使用:
$('input[type=checkbox]').on('change', function() {
...
});
根据我的经验,我已经利用该事件的currentTarget当前:
$("#dingus").click(function (event) {
if ($(event.currentTarget).is(':checked')) {
//checkbox is checked
}
});
此代码做什么你的需要:
<input type="checkbox" id="check" >check it</input>
$("#check").change(function(){
if($(this).is(':checked')) {
alert("checked");
}else{
alert("unchecked");
}
});
此外,您可以检查它jsfiddle
- 1. 复选框“检查”事件
- 2. 如何检查更改事件的复选框状态
- 3. 如何在android复选框检查更改时接收事件?
- 4. 更改类以检查复选框JavaScript
- 5. 改变事件的proccess之前jQuery的检查复选框做
- 6. ASP.NET MVC检测事件(点击,下拉更改,复选框检查)
- 7. 复选框检查,未经检查的事件的jQuery
- 8. 浏览器检测 - 复选框更改事件
- 9. 如何在不触发更改事件的情况下检查复选框?
- 10. 单选按钮更改事件后未复选复选框
- 11. 检查/取消选中父复选框,如果所有取消选中/检查与jQuery更改事件
- 12. 当我检查复选框选项后,为什么我的复选框选项文本更改为检查?
- 13. 多个复选框选择与延迟检查其他复选框更改
- 14. LongListSelector与TextBlock和复选框 - 如何更改复选框的检查状态
- 15. 复选框没有取消选中jquery的更改事件
- 16. 通过事件中的另一个复选框更改复选框
- 17. 当检查框时,复选框值不会更改
- 18. 如何在c#中更改复选框值时在DataGridView中检查复选框?
- 19. wpf listbox复选框更改颜色时检查或选择
- 20. 检查复选框
- 21. jQueryMobile复选框触发整个控件组的更改事件
- 22. jQuery - 检测复选框已更改
- 23. 复选框更改被检测两次
- 24. 如何在ITextSharp中更改复选框的检查类型
- 25. 更改检查复选框Jquery的背景图像?
- 26. WPF复选框:检查更改的处理
- 27. JavaScript的复选框:使用按钮来更改组来检查
- 28. 我该如何检查Android的Listivew的ItemClickListener事件复选框?
- 29. 更改事件触发的选择框
- 30. 检查复选框选中
如果您正在使用JQuery的一个相对较新的版本,我会用的。对(“变”,函数(){...}),如提及@Daniel De Leon的答案在下面。一个优点是,“on”事件监听器将绑定到动态生成的html。 – BLang 2018-03-08 14:31:47