Jquery复选框选择

时间:2011-11-25 14:25:53

标签: jquery

我有一个同名的复选框,我需要在数组中获取复选框的选定值。(它应该排除非选定的值)。我有以下代码。

$(document).ready(function() {
    $(".t").change(function() {
        var allVals = [];
        $("input[name='checkbox1']:checked").each(function() {
            // alert($(this).val());
            allVals.push($(this).val());
        });
        $('#click').click(function() {
            $.each(allVals, function() {
                alert(this); // It alerts old past value also
            });
        });
    });
});


<input name="checkbox1" class="t" type="checkbox" value="1"/>a <br/>
<input name="checkbox1" class="t" type="checkbox" value="2"/>b <br/>
<input name="checkbox1" class="t" type="checkbox" value="3"/>c <br/>
<input name="checkbox1" class="t" type="checkbox" value="4"/>d <br/>
<input id="click" id="button" type="button" value="click" />

这是一个带有我的代码的JSFiddle - &gt; http://jsfiddle.net/manseuk/VHSrZ/

有人可以建议如何解决吗?

3 个答案:

答案 0 :(得分:2)

你可以这样做:

$(document).ready(function() {
    var allVals;
    $(".t").change(function() {
        allVals = [];
        $("input[name='checkbox1']:checked").each(
        function() {
            allVals.push($(this).val());
        });

    });
});

这样,allVals是一个只包含已检查值的数组

在此处http://jsfiddle.net/K6dTF/(使用firebug检查结果)

答案 1 :(得分:1)

每次单击复选框时,都会绑定新的单击功能。你需要把它放在这个范围之外,或者取消绑定函数并重新绑定。

类似的东西:

$(document).ready(function() {
    var allVals = [];
    $(".t").change(function() {
        allVals = [];
        $("input[name='checkbox1']:checked").each(function() {
            // alert($(this).val());
            allVals.push($(this).val());
        });
    });
    $('#click').click(function() {
        $.each(allVals, function() {
            alert(this); // It alerts old past value also
        });
    });
});

请参阅小提琴:http://jsfiddle.net/VHSrZ/3/

答案 2 :(得分:1)

将您的JS更改为以下内容:

它将警告一系列选定值

$('#click').click(function() {
    var allVals = [];
    $("input[name='checkbox1']:checked").each(function() {
        // alert($(this).val());
        allVals.push($(this).val());
    });
    alert(allVals);
});

工作示例:http://jsfiddle.net/manseuk/VHSrZ/2/