我有10个复选框的数组。复选框的onclick我想获取该特定复选框的值。我能够使用我的代码实现。当我按顺序单击时,它工作正常。当我在单击复选框7后单击复选框5时,复选框5的值(即..5)将在7之前添加。我不希望以此顺序进行。我希望值以单击的任何顺序显示。我的js文件如下

var selected = new Array();
$(document).ready(function(){

checkBoxTest();

});
function checkBoxTest() {
    alert("checkbox test");
    for(i = 0; i < 10; i++){
        $("#catalog_table").append('<tr><td>Checkbox<input type="checkbox"  name ="chkbox"  value="' +i+' "/><td></tr>');
        test();
    }

}

function test() {
    $('#catalog_table input:checkbox').change(function() {
    var emails = [];
    $('#catalog_table input:checkbox:checked').each(function() {
     emails.push($(this).val());
    });
    var textField = document.getElementById("root");
      textField.value = emails;
    });

}


我的HTML代码是这样的

<table id="catalog_table"> </table>
<textarea  id="root"></textarea>


谁能告诉我该怎么做?

Demo

最佳答案

它杂乱无章,但可以正常工作:
http://jsfiddle.net/za7m8/1/

var selected = new Array();
$(document).ready(function(){

    $("input[type='checkbox']").on('change', function() {
        // check if we are adding, or removing a selected item
        if ($(this).is(":checked")) {
            selected.push($(this).val());
        } else {
            for(var i = 0; i<selected.length;i++) {
                if (selected[i] == $(this).val()) {
                    // remove the item from the array
                    selected.splice(i, 1);
                }
            }
        }

        // output selected
        var output = "";
        for (var o = 0; o<selected.length; o++) {
            if (output.length) {
                output += ", " + selected[o];
            } else {
                output += selected[o];
            }
        }
        $("#root").val(output);
    });
});

关于javascript - 单击数组中复选框时显示的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22625237/

10-10 23:29
查看更多