使用jQuery获取已检查复选框值的列表

时间:2013-08-02 23:19:48

标签: javascript jquery ajax

我有以下HTML:

<input type="checkbox" name="subregion[]" value="North East" />North East
<input type="checkbox" name="subregion[]" value="North West" />North West
<input type="checkbox" name="subregion[]" value="Midlands" />Midlands
<input type="checkbox" name="subregion[]" value="South East" />South East
<input type="checkbox" name="subregion[]" value="South West" />South West
<input type="checkbox" name="subregion[]" value="Wales" />Wales
<input type="checkbox" name="subregion[]" value="Scotland" />Scotland

我想使用ajax将检查输入的值列表传递给php脚本。我只是无法弄清楚如何用jQuery实现它?

3 个答案:

答案 0 :(得分:1)

获取值数组:

var checked = $('[name="subregion[]"]:checked').map(function() { 
  return $(this).val(); 
}).get(); 

如果您使用的是$.ajax或相关方法,则无需序列化或调用JSON.stringify您只需将数组用作参数值 )。

答案 1 :(得分:0)

循环选中复选框,将它们添加到数组并将其转换为字符串:

var checked = [];   
$('input[type="checkbox"]:checked').each(function() {
    checked.push($(this).val());
});
var checkedStr = JSON.stringify(checked);    

或者像这样序列化它们:

$('input[type="checkbox"]:checked').serialize();

答案 2 :(得分:0)

<强> Demo: jsFiddle

如果您使用的是CSS3,则可以使用begins-with选择器,否则您可以使用name="subregion[]"

function getSelectedSubregions() {
    var subregion = new Array();
    $(':checkbox:checked[name^="subregion"]').each(function() {
       subregion.push($(this).val());
    });
    return subregion;
}