如何在同一行中选择选择框时自动选中复选框

时间:2013-09-10 07:26:21

标签: javascript jquery

如果在同一行中选择了选择框,我想在复选框中自动选择。 虽然我在stackoverflow中发现了这个问题,但不幸的是它不符合我的要求。所以,请给我一些建议。

表格中有很多行。在每一行中,每列中都有一个复选框和一个选择框。如果我在一行的选择框中选择了某些内容,我想在同一行中选中自动复选框。

我编写了如下代码。

<script>
    $(document).ready(function() {
        $('.sel_ActList_status').change(function() {
            $('.sel_ActList_status').parent('td').silbings('td').find(".chk_ActList_select").checked = true;
            //$('.sel_ActList_status').parent('td').silbings('td').find(".chk_ActList_select").prop("checked", true);
        });
    });
</script>

<table>
    <tr>
        <td>
            <input id="chk_ActList_select[0]" class="chk_ActList_select" type="checkbox" value="true" name="chk_ActList_select[0]">
        </td>
        <td>xxxxx</td>
        <td>
            <select id="sel_ActList_status" class="sel_ActList_status" name="sel_ActList_status">
                <option selected="selected" value="2">11111</option>
                <option value="0">22222</option>
                <option value="1">33333</option>
            </select>
        </td>
    </tr>
    <tr>
        <td>
            <input id="chk_ActList_select[1]" class="chk_ActList_select" type="checkbox" value="true" name="chk_ActList_select[1]">
        </td>
        <td>xxxxx</td>
        <td>
            <select id="sel_ActList_status" class="sel_ActList_status" name="sel_ActList_status">
                <option value="2">11111</option>
                <option selected="selected" value="0">22222</option>
                <option value="1">33333</option>
            </select>
        </td>
    </tr>
</table>

但是当我在selectbox中选择了某些内容时,我的代码无法自动签入复选框。我的jquery代码有什么问题吗?请给我一些指导。

提前致谢。

4 个答案:

答案 0 :(得分:2)

试试This,这对您有帮助

$('.sel_ActList_status').change(function(){                                                     
    $(this).closest('tr').find('input:checkbox').prop('checked',true);
 });

答案 1 :(得分:0)

试试这个

$('.sel_ActList_status').change(function(){
    $(this).parent().parent().find('input[type=checkbox]').attr('checked','checked');
});

答案 2 :(得分:0)

最简单的,我建议:

$('select').change(function(){
    $(this).closest('tr').find('input').prop('checked',true);
});

JS Fiddle demo

虽然如果通过选择或更改选择框来启用检查,您可能应该通过相同的路径启用取消检查(只是为了保留一致的UI),所以我修改了select元素,添加“无”option<option selected="selected" value="-1">None</option>),如果已选中,则取消选中该框:

$('select').change(function(){
    var self = this;
    $(this).closest('tr').find('input').prop('checked', self.value !== '-1');
});

JS Fiddle demo

答案 3 :(得分:0)

试试这个

$('.sel_ActList_status').change(function() {
    $(this).parent('td').siblings().find(".chk_ActList_select").attr("checked", "true");
});