-6

在我当前的项目中,我正在创建一个搜索功能,该功能可以在用户选择不同的搜索条件时动态更新内容。正如我的标题所述,我想知道用户是否选中或取消选中了特定项目,以便我的 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!");}

  });
4

2 回答 2

3

您可以使用

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

如果至少检查了集合中的一项,则返回 true。在这种情况下,该集合将是(希望)具有 id myCheckbox的奇异元素。

于 2013-09-06T19:18:29.310 回答
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 Fiddle:http: //jsfiddle.net/cookies/NDjCT/

于 2013-09-06T19:18:03.763 回答