【问题标题】:Checking checkboxes in JQuery在 JQuery 中检查复选框
【发布时间】:2012-02-24 00:33:26
【问题描述】:

您好,我正在尝试检查复选框是否被选中。但是我的复选框是使用 for 循环创建的,每个复选框的值实际上是相同的。

代码如下:

{% for keyword in keyword_list %}
    {% if keyword.keyword_name == userprofile.keywords_subscribed  %}
        <input type="checkbox" disabled="disabled" name="keywords" value="keywords"/>   {{keyword.keyword_name}}<br />
    {% else %}
        <input type="checkbox" name="cb" value="keywords"  />   {{keyword.keyword_name}}<br />
    {% endif %}
{% endfor %}

jquery代码如下:

<h2>Price of subscriptions</h2>
    <script type="text/javascript" src="/static/js/jquery-1.6.3.min.js"></script>
    <script type="text/javascript" src="/static/js/jquery-ui-1.8.16.custom.min.js"></script>
    <script type="text/javascript" src="/static/fc3/charts/FusionCharts.js"></script>
    <script type="text/javascript">
    function popup(){
        {% for price in price_list %}
            alert({{price.price_of_each_keyword}})
        {% endfor %}
    }
    function DoTheCheck() { if(document.cb2.checked == true)
                { alert('box2 is checked'); }
    }

    </script>

目前我能想到的就这些了。

那么我如何使用 jquery 来遍历复选框并检查它们是否被选中?

我在网上找到了一些示例,但其中大多数实际上为他们的代码创建了单独的复选框名称,这使得使用 jquery 更容易检查它们。

感谢我能得到的任何帮助。

谢谢。

【问题讨论】:

  • 向我们展示周围的 HTML(父对象)。根据您所展示的内容,还不足以知道 jQuery 会起作用,因为您输入的标签不是唯一可识别的。
  • 我没有看到任何 jQuery 代码...

标签: jquery html checkbox


【解决方案1】:

您可以通过以下方式获取站点中所有选中复选框的列表:

$('input[type=checkbox]:checked')

简短

正如克雷格所说,也有一个简短的版本:

$(':checkbox:checked')

计数

如果您想知道选中复选框的数量,只需执行以下操作:

$(':checkbox:checked').length

【讨论】:

  • +1 还有一个简短的:checkbox 选择器,写成这样$(':checkbox:checked') 来获得选中的复选框。
【解决方案2】:

Marc 有一个很好的答案,但如果你想逐一检查并检查,那么下面的方法可以做到这一点。

$('input[type=checkbox]').each(function(){
     if($(this).is(":checked")){
         alert($(this).attr("name")+ " is checked");
     } else {
         alert($(this).attr("name")+ " is not checked");
     }
   });

希望有帮助!

【讨论】:

  • 感谢 ehudokai!知道如何检查选中的框数吗?
  • 你去:$(':checkbox:checked').length
  • this.checked$(this).is(":checked") 更高效且(在我看来)更易于阅读。 this.name...
【解决方案3】:

如果您不想遍历页面上的所有复选框

你可以像这样给他们一个类和循环

$('.yourClass').each(function(i, obj) {
    if($(this).is(':checked'))
{

your code

}

});

【讨论】:

  • 如果我想计算选中的数量怎么办?
  • 您使用页面上的循环或所有复选框创建的那些?如果你想要所有的复选框,另一个 Marc 有很好的方法来做到这一点
  • 找到了答案。只需要使用function.length 干杯! :D
猜你喜欢
  • 1970-01-01
  • 2020-12-07
  • 1970-01-01
  • 2015-10-03
  • 1970-01-01
  • 1970-01-01
  • 2012-01-26
  • 1970-01-01
  • 2014-04-26
相关资源
最近更新 更多