检索已选中复选框的值

时间:2013-08-19 17:51:51

标签: jquery checkbox input html-table

我有一个表(下方),其中包含与复选框关联的值。

<table id="testTable">
<tbody>
    <tr id="tr1">
        <td><input type="checkbox" value="value1"></td>
        <td>row 1</td>
        <td>A</td>
    </tr>    
    <tr id="tr2">
        <td><input type="checkbox" value="value2" ></td>
        <td>row 2</td>
        <td>B</td>
    </tr>    
    <tr id="tr3">
        <td><input type="checkbox" value="value3"></td>
        <td>row 3</td>
        <td>C</td>  
    </tr>    
</tbody>

一旦用户选择了任意复选框组合,我需要确定与已选中的任何复选框相关联的值(在用户点击“完成”按钮后)。

这是我到目前为止所拥有的

$('#Finished').click(function() {

 $('#testTable tr').filter(':has(:checkbox:checked)').each(function() {

    $tr = $(this);
    $('td', $tr).each(function() {

        // NEED THIS BIT

    });

 });
});

我很难获得用户选中的复选框的值。

2 个答案:

答案 0 :(得分:2)

只需选中所选复选框并收集值:

var values = [];
$("input[type='checkbox']:checked").each(function () {
     values.push({"val": $(this).val(), "tr": $(this).closest("tr").attr("id")});
});

这将生成如下数组:

[
   {
       "val": "value1",
       "tr":  "tr1"
   },
   ...
]

...仅包含已选中的复选框。

JSFIDDLE

答案 1 :(得分:1)

判断选中哪一个的简单方法是向<input>元素添加ID:

<tr id="tr1">
    <td><input id="cb1" type="checkbox" value="value1"></td>
    <td>row 1</td>
    <td>A</td>
</tr>