如何在Jquery中选中复选框时收听

Jor*_*ash 65 jquery

我需要知道何时检查页面上的任何复选框:

例如

<input type="checkbox">
Run Code Online (Sandbox Code Playgroud)

我在Jquery中尝试过这个

$('input type=["checkbox"]').change(function(){
alert('changed');
});
Run Code Online (Sandbox Code Playgroud)

但它没有用,有什么想法吗?

Dav*_*mas 117

使用change()事件和is()测试:

$('input:checkbox').change(
    function(){
        if ($(this).is(':checked')) {
            alert('checked');
        }
    });
Run Code Online (Sandbox Code Playgroud)

我已经将上面的内容更新到了下面,因为我对ifDOM属性的愚蠢依赖(在)中,当DOM属性同样合适时,使用起来也更便宜.此外,选择器已更改,以便允许在支持它的浏览器中将其传递给DOM的document.querySelectorAll()方法:

$('input[type=checkbox]').change(
    function(){
        if (this.checked) {
            alert('checked');
        }
    });
Run Code Online (Sandbox Code Playgroud)

为了完成,在纯JavaScript中也可以轻松实现相同的功能:

var checkboxes = document.querySelectorAll('input[type=checkbox]'),
    checkboxArray = Array.from( checkboxes );

function confirmCheck() {
  if (this.checked) {
    alert('checked');
  }
}

checkboxArray.forEach(function(checkbox) {
  checkbox.addEventListener('change', confirmCheck);
});
Run Code Online (Sandbox Code Playgroud)

参考文献:


Jas*_*per 22

$('input:checkbox').live('change', function(){
    if($(this).is(':checked')){
        alert('checked');
    } else {
        alert('un-checked');
    }
});
Run Code Online (Sandbox Code Playgroud)

jsfiddle:http://jsfiddle.net/7Zg3x/1/

  • 由于我不知道如何/何时将输入元素添加到dom中,因此使用.live()作为示例有助于它们相关,即使正在动态注入元素也是如此.在一般意义上,.live()将适用于"现在和未来"的元素(如文档所示)和.click()是.bind('click',function(){})的快捷方式.仅适用于dom中已有的元素. (9认同)
  • 从jQuery 1.7开始,您可能希望使用.on()而不是.bind()或.live().更多信息:http://api.jquery.com/on/ (7认同)
  • 根据[jQuery docs](http://api.jquery.com/live/),`.live()`已从1.9开始被完全删除. (4认同)

She*_*hef 13

$('input:checkbox').change(function(){
    if($(this).is(':checked')){
        alert('Checked');
    }
});
Run Code Online (Sandbox Code Playgroud)

这是一个演示


Dan*_*iel 6

如果你想使用 .on 这有效

 jQuery('input[type=checkbox]').on('change', function() {
   if (this.checked) {
     console.log('checked');
   }
 });
Run Code Online (Sandbox Code Playgroud)