将值添加到复选框,收集所有选中的值并发送它们(jQuery)

时间:2013-04-29 19:18:15

标签: javascript jquery

我有一个由系统生成的大型(~800行)表,需要添加一个复选框,以便有人可以检查他们想要了解更多信息的行。我可以批量添加复选框列,但我不会单独为这些复选框添加值...所以我的问题:

如果我有这样的大表:

<table>
    <tr>
        <td><input type="checkbox"></td>
        <td>ABCDEFG</td>
    </tr>
    <tr>
        <td><input type="checkbox"></td>
        <td>HIJKLMN</td>
    </tr>
    ... etc...
</table>

我是否可以使用下一个<td> 中的文字将值附加到复选框?因此,如果有人点击第一个复选框,其值将设置为“ABCDEFG”?

很可能会点击几个复选框。是否最好在点击时分配值,或者等到提交被点击以循环选中分配值的复选框?

我担心桌子太大会引起一些问题。

2 个答案:

答案 0 :(得分:6)

$('input[type="checkbox"]').on('change', function() {
    if (this.checked) {
        this.value = $(this).closest('td').next('td').text();
    }else{
        this.value = "";
    }
});

答案 1 :(得分:0)

试试这个小提琴。我认为它会做你想做的事情:

http://jsfiddle.net/yFJsk/

$("#submit").click(function() {
    var selected = "";
    $("input[type=checkbox]").each(function() {
        if ($(this).is(":checked")) {
            selected += $(this).parent().siblings("td").text() + ",";
        }
    });
    alert(selected);
});

基本上,我们在按下提交按钮时获取所有值,并构建逗号分隔的字符串。您可以更改每个函数的if语句中的内容,以便根据所选值执行任何操作。