是否有可能javascript确定是否已选中或取消选中复选框?

时间:2013-09-06 19:16:52

标签: javascript jquery checkbox

在我当前的项目中,我正在创建一个搜索功能,可以在用户选择不同的搜索条件时动态更新内容。正如我的标题所述,我想知道用户是否已选中或取消选中某个特定项目,以便我的JavaScript代码可以适当调整内容。

使用jQuery我可以轻松判断是否有人点击了复选框,但我不知道如何判断它是否被检查?

示例:

<label class="checkbox"><input type="checkbox" id="checkbox1"> Any in Manhattan</label> 

用户点击它,我希望我的jquery做类似的事情:

  $( "#checkbox1" ).on( "click", function( event, ui ){
    if("#checkbox1" === "clicked"){console.log("check it out!");}

  });

2 个答案:

答案 0 :(得分:3)

您可以使用is

$("#myCheckbox").is(":checked")

如果选中集合中的至少一个项目,则返回true。在这种情况下,该集合将是(希望)单数元素,其id为 myCheckbox

答案 1 :(得分:1)

使用复选框对象的.checked属性,而不仅仅是检测到它被单击了。正如您所指出的那样,仅仅单击一次并不意味着它被检查是因为它们可能已经单击以取消选中它,就像它们可能单击以检查它一样。

如果您向我们展示了代码的相关部分,我们可以在您的程序环境中准确地告诉您如何执行此操作。 (例如,你提到你“很容易判断是否有人点击了复选框。”因此,如果你将这部分代码放入你的问题中,我们可以告诉你如何判断复选框是否“被击中”但是还要使用本机.checked属性或jQuery选择器来判断是否已选中。)

使用您的代码示例,我们可以这样做:

  $( "#checkbox1" ).on( "change", function( event, ui ){
    if(this.checked){console.log("check it out!");}

  });

出于各种原因,最好使用change代替click

更新:此处有更多讨论:jQuery checkbox checked state changed event

更新2: 使用上面的代码片段来处理JS小提琴:http://jsfiddle.net/cookies/NDjCT/