2012-08-14 88 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(); 
相關問題