捕获复选框的已更改事件

omg*_*omg 121 jquery unchecked

如何<input type="checkbox" />使用jQuery 捕获check/uncheck事件?

mar*_*cgg 164

<input type="checkbox" id="something" />

$("#something").click( function(){
   if( $(this).is(':checked') ) alert("checked");
});
Run Code Online (Sandbox Code Playgroud)

编辑:当复选框由于其他原因而不是单击而更改时,执行此操作将无法捕获,例如使用键盘.为了避免这个问题,请听change而不是click.

要以编程方式检查/取消选中,请查看为什么我的复选框更改事件未触发?

  • 我知道我迟到了派对,但这仅在"点击"事件触发时才有效.如果由于某种原因你在代码中的其他地方做了类似的事情:$("#something").attr("checked","checked")click事件永远不会被触发. (3认同)
  • @DavidStinemetze:我会说你可以听"改变"而不是点击.我正在更新答案 (3认同)
  • Shore:getElementById工作的原因是它返回一个DOM元素,而$ jQuery函数返回一个jQuery对象.jQuery对象将DOM元素作为属性,但它本身不是DOM对象. (2认同)

小智 43

如果我们将一个标签附加到输入复选框,则点击会影响标签?

我认为最好使用.change()函数

<input type="checkbox" id="something" />

$("#something").change( function(){
  alert("state changed");
});
Run Code Online (Sandbox Code Playgroud)


kar*_*m79 25

使用:checked选择器确定复选框的状态:

$('input[type=checkbox]').click(function() {
    if($(this).is(':checked')) {
        ...
    } else {
        ...
    }
});
Run Code Online (Sandbox Code Playgroud)


Dan*_*eón 12

对于JQuery 1.7+使用:

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


Dee*_*ini 7

此代码满足您的需求:

<input type="checkbox" id="check" >check it</input>

$("#check").change( function(){
   if( $(this).is(':checked') ) {
        alert("checked");
    }else{
        alert("unchecked");
   }
});
Run Code Online (Sandbox Code Playgroud)

另外,您可以在jsfiddle上检查它