在jQuery中获取复选框值

如何在jQuery中获得复选框的值?

HarryHarry2020/03/19 10:49:15

Here is how to get the value of all checked checkboxes as an array:

var values = (function() {
                var a = [];
                $(".checkboxes:checked").each(function() {
                    a.push(this.value);
                });
                return a;
            })()
Sam飞云2020/03/19 10:49:14
jQuery(".checkboxClass").click(function(){
        var selectedCountry = new Array();
        var n = jQuery(".checkboxClass:checked").length;
        if (n > 0){
            jQuery(".checkboxClass:checked").each(function(){
                selectedCountry.push($(this).val());
            });
        }
        alert(selectedCountry);
    });
西里小胖小卤蛋2020/03/19 10:49:14

简单但有效,并且假定您知道将找到该复选框:

$("#some_id")[0].checked;

true/false

JinJin凯梅2020/03/19 10:49:14

检索复选框值的唯一正确方法如下

if ( elem.checked ) 
if ( $( elem ).prop( "checked" ) ) 
if ( $( elem ).is( ":checked" ) ) 

如jQuery网站上的官方文档所述。其余方法与复选框属性无关,它们正在检查属性,这意味着它们正在测试复选框在加载时的初始状态。简而言之:

  • 当您拥有该元素并且知道它是一个复选框时,您只需读取其属性即可,而您将不需要jQuery(即elem.checked),或者$(elem).prop("checked")如果您想依赖jQuery,也可以使用它。
  • 如果您需要知道(或比较)元素首次加载时的值(即默认值),则正确的方法是$(elem).is(":checked")

答案有误导性,请检查以下内容:

http://api.jquery.com/prop/

飞云飞云2020/03/19 10:49:14

试试这个小解决方案:

$("#some_id").attr("checked") ? 1 : 0;

要么

$("#some_id").attr("checked") || 0;