2012-08-14 86 views
37

如何获取使用jquery选择的复选框的值?我的HTML代码如下:如何使用jquery获取多个复选框的值

<input id="ad_Checkbox1" class="ads_Checkbox" type="checkbox" value="1" /> 
<input id="ad_Checkbox2" class="ads_Checkbox" type="checkbox" value="2" /> 
<input id="ad_Checkbox3" class="ads_Checkbox" type="checkbox" value="3" /> 
<input id="ad_Checkbox4" class="ads_Checkbox" type="checkbox" value="4" /> 
<input type="button" id="save_value" name="save_value" value="Save" /> 

回答

77

试试这个

<input name="selector[]" id="ad_Checkbox1" class="ads_Checkbox" type="checkbox" value="1" /> 
<input name="selector[]" id="ad_Checkbox2" class="ads_Checkbox" type="checkbox" value="2" /> 
<input name="selector[]" id="ad_Checkbox3" class="ads_Checkbox" type="checkbox" value="3" /> 
<input name="selector[]" id="ad_Checkbox4" class="ads_Checkbox" type="checkbox" value="4" /> 
<input type="button" id="save_value" name="save_value" value="Save" /> 

功能

$(function(){ 
     $('#save_value').click(function(){ 
     var val = []; 
     $(':checkbox:checked').each(function(i){ 
      val[i] = $(this).val(); 
     }); 
     }); 
    }); 
17

你可以像这样做,

$('.ads_Checkbox:checked') 

你可以通过它们与each()迭代,并填补checkedbox值的数组。

Live Demo

要获得阵列选定的复选框的值

var i = 0; 
$('#save_value').click(function() { 
     var arr = []; 
     $('.ads_Checkbox:checked').each(function() { 
      arr[i++] = $(this).val(); 
     });  
}); 

编辑,使用.MAP()

您还可以使用jQuery.mapget()到获取所选复选框值的数组。

作为附注,使用this.value而不是$(this).val()会给出更好的性能。

Live Demo

$('#save_value').click(function(){ 
    var arr = $('.ads_Checkbox:checked').map(function(){ 
     return this.value; 
    }).get(); 
}); 
1

你可以让他们这样

$('#save_value').click(function(){ 
$('.ads_Checkbox:checked').each(function(){ 
    alert($(this).val()); 
         });}); 

jsfiddle

+1

你真的应该张贴代码与你的答案一起。说jsfiddle失败了,或者死了......这个答案是毫无价值的。它也可以帮助人们找到通过谷歌等搜索的答案。 – Jeemusu 2012-08-14 04:43:38

+0

有几千个在SO上使用jsfiddle的答案,而jsfiddle是以工作方式查看问题的最佳方法,以便为问题提供更好的答案 – rahul 2012-08-14 04:44:43

+0

使用jsfiddle非常棒,请这样做,但也请在Stackoverflow中发布答案!就像我说的那样,说jsfiddle从互联网上消失了,有同样问题的人找到了这篇文章......没有答案只是一个死链接。它也不会被搜索引擎索引。 – Jeemusu 2012-08-14 04:45:06

1

由于u必须对所有复选框相同的类名,从而

$(".ads_Checkbox") 

将要给你所有的复选框,然后你可以使用每个迭代它们像

$(".ads_Checkbox:checked").each(function(){ 
    alert($(this).val()); 
}); 
2

你可以试试;

$('#save_value').click(function(){ 
    var final = ''; 
    $('.ads_Checkbox:checked').each(function(){   
     var values = $(this).val(); 
     final += values; 
    }); 
    alert(final); 
}); 

这将返回单个实例中的所有复选框值。

Here是一个工作现场演示。

0

尝试getPrameterValues()从多个复选框获取值。

50

要获得值的阵列从多个选中的复选框,使用jQuery地图/获取功能:

$('input[type=checkbox]:checked').map(function(_, el) { 
    return $(el).val(); 
}).get(); 

这将返回阵列检查的值,像这样的:['1', '2']

下面是工作示例在jsfiddle上:http://jsfiddle.net/7PV2e/

1

您也可以使用$('input[name="selector[]"]').serialize();。它返回URL编码的字符串,如:“选择器%5B%5D = 1 &选择器%5B%5D = 3”

0

试试这个..(家伙我是一只新蜂..所以如果我错了,那么我真的对不起,但是我发现这样一个解决方案。)

var suggestion = []; 
     $('#health_condition_name:checked').each(function (j, ob) { 
      var odata = { 
       health_condition_name: $(ob).val() 
      }; 
      health.push(odata); 
     }); 
0
$('input:checked').map(function(i, e) {return e.value}).toArray(); 
相关问题