jQuery,获取与所选复选框对应的值数组

时间:2016-08-29 14:52:35

标签: javascript jquery checkbox

raw_range.sort( raw_range.getColumn())

上面会有10-15行。

在jQuery方面,我有:

<form id="myform">
<table>         
<tbody>
    <tr>
    <td class="textcenter">
        <input type="checkbox" name="domains[]" value="mydomainname.com" checked=""> 
        <input type="hidden" name="action[]" value="buy">
    </td>
    <td>mydomainname.com</td>
    <td >Available! Choose the number of years</td>
    <td class="textcenter">
        <select class="leftmargin10 bottommargin10 form-control" name="period[]">
            <option value="1">1 Year/s @ $24.99</option>
            <option value="2">2 Year/s @ $49.98</option>
            <option value="3">3 Year/s @ $74.97</option>
        </select>
    </td>
    </tr> 
    <tr>
    <td class="textcenter">
        <input type="checkbox" name="domains[]" value="mydomainname.net"> 
        <input type="hidden" name="action[]" value="transfer">
    </td>
    <td>mydomainname.net</td>
    <td>Available! Choose the number of years</td>
    <td class="textcenter">
        <select class="leftmargin10 bottommargin10 form-control" name="period[]">
            <option value="1">1 Year/s @ $24.99</option>
            <option value="2">2 Year/s @ $49.98</option>
            <option value="3">3 Year/s @ $74.97</option>
        </select>
    </td></tr> 
</tbody></table>

<button type="submit" name="submitButton" class="btn-yellow" value="Buy">Register Now!</button>
</form>

此代码目前为我提供了正确的复选框值,但它给出了所有下拉列表的值(无论复选框状态如何)。如何将这两者绑定在一起并仅获取与选中复选框对应的下拉列表的值。

谢谢!

1 个答案:

答案 0 :(得分:0)

替换

var action= $('input[name="action[]"]').map(function(){
    return $(this).val();
}).get();

var period= $('select[name="period[]"]').map(function(){
    return $(this).val();
}).get();

var action= $('input[name="action[]"]').map(function(){
    if ($(this).prev().is(':checked'))
        return $(this).val();
}).get();

var period= $('select[name="period[]"]').map(function(){
    if ($(this).parent().prev().prev().prev().children('input[type="checkbox"]').is(':checked'))
        return $(this).val();
}).get();

它不是很优雅,但是您可以通过DOM来获取相应的复选框。

请参阅此JSFiddle