使用输入复选框时,错误在数组中获取值

时间:2014-02-22 08:42:10

标签: javascript jquery

我有一个样本:

<input type="checkbox" id="in-category-1" name="post_category[]" value="1">
<input type="checkbox" id="in-category-2" name="post_category[]" value="2">
<input type="checkbox" id="in-category-3" name="post_category[]" value="3">
<input type="checkbox" id="in-category-4" name="post_category[]" value="4">
<input type="checkbox" id="in-category-5" name="post_category[]" value="5">

和jquery:

var selectednumbers = [];
jQuery('input[type=checkbox]').each(function(i, selected) {
   selectednumbers[i] = jQuery(selected).val();
});
alert(selectednumbers);

=&GT;选中并取消选中时,错误无法获取值

4 个答案:

答案 0 :(得分:1)

您可以使用change()事件获取所选值以及map()方法来检索您的数组:

jQuery('input[type=checkbox]').on("change", function () {
    var selectednumbers = jQuery('input[type=checkbox]:checked').map(function () {
        return this.value;
    }).get();
    alert(selectednumbers);
});

<强> Fiddle Demo

答案 1 :(得分:0)

如果您想在数组中包含所选项目值,请使用.map()

var selectednumbers = jQuery('input[type=checkbox]:checked').map(function (i, selected) {
    return this.value;
}).get();
alert(selectednumbers);

答案 2 :(得分:0)

要获取已选中状态,您无法使用val()使用.checked属性:

selectednumbers[i] = selected.checked;

答案 3 :(得分:0)

将更改事件绑定到复选框

jQuery('input[type=checkbox]').on("change",function(){

    var selectednumbers = [];
    jQuery('input[type=checkbox]').each(function(i, selected) {
        selectednumbers[i] = selected.value + ' : ' + selected.checked;
    });
    alert(selectednumbers);

})

Fiddle Demo