2013-08-19 31 views
1

我有一個包含與複選框關聯的值的表(下面)。檢索已選中的複選框的值

<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

只需選中複選框處於選中狀態,並收集值:

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

感謝約翰。正是我需要的:-) – Jeremy

+0

@Jeremy不客氣。 :-) –

1

的簡單的方法來分辨出哪一個被選中是一個ID添加到<input>元素:

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