我想获取所有选中复选框的值

时间:2015-06-03 06:26:52

标签: javascript jquery checkbox

$(document).ready(function() {
    $('input[type = "checkbox"]').change(function() { //when a checkbox is checked
        var nvalues = $('input[type="checkbox"]:checked').map(function() {
            return this.value;
        }).get();
        if (nvalues.length > 0) {
            var fin = nvalues.value;
            $('#here').html(fin);
        } else {
            $('#here').html("WTF");
        }
    });
});

这里我使用map将选中的值存储为数组,但输出为空。

4 个答案:

答案 0 :(得分:2)

请参阅代码中的注释:

$(document).ready(function() {
    $(':checkbox').change(function() { // :checkbox pseudo-selector selects all checkboxes
        var nvalues = []; // Initialize empty array

        $(':checkbox:checked').each(function() { // For all checked checkboxes
            nvalues.push($(this).val()); // Push current checkbox value in array
        });


        if (nvalues.length > 0) {
            $('#here').html(nvalues.toString()); // Array to string conversion
        } else {
            $('#here').html("WTF");
        }
    });
});

答案 1 :(得分:2)

get() 方法会返回一组值,使用 join() 加入它们,然后显示



$(document).ready(function() {
    $('input[type = "checkbox"]').change(function() { //when a checkbox is checked
        var nvalues = $('input[type="checkbox"]:checked').map(function() {
            return this.value;
        }).get();
        if (nvalues.length > 0) {
            var fin = nvalues.join(',');
            $('#here').html(fin);
        } else {
            $('#here').html("WTF");
        }
    });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<input type="checkbox" value="1"/>
<input type="checkbox" value="2"/>
<input type="checkbox" value="3"/>
<input type="checkbox" value="4"/>
<input type="checkbox" value="5"/>
<input type="checkbox" value="6"/>
<div id="here"></div>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

尝试:

$(document).ready(function() {
    $('input[type = "checkbox"]').change(function() { //when a checkbox is checked
        var nvalues = $('input[type="checkbox"]:checked').map(function() {
            return $(this).val();
        }).get();
        if (nvalues.length > 0) {
            var fin = nvalues[0];
            $('#here').html(fin);
        } else {
            $('#here').html("error");
        }
    });
});

答案 3 :(得分:1)

value这样的数组中没有属性:

var fin = nvalues.value;

尝试加入:

var fin = nvalues.join(','); //gives csv

OR

var fin = nvalues.join(' ');//spaces