每个两个之间只有一个复选框

时间:2017-06-29 11:03:26

标签: javascript jquery html

我有这样的代码:

<tr>
    <td>
        <input type="checkbox" name="ordered[]" value="xxx"></input>
    </td>       
    <td>
        <input type="checkbox" name="inStock[]" value="yyy"></input>
    </td>
</tr>

对MySQL中的每个结果重复代码。

我也在使用这段代码:

<script>
    $('input[type="checkbox"]').on('change', function() {

        // uncheck sibling checkboxes (checkboxes on the same row)
        $(this).siblings().prop('checked', false);

    });
</script>

我需要每行只选择一个复选框(每个表tr)。我应该在javascript中更改什么?

谢谢!

5 个答案:

答案 0 :(得分:1)

我认为你需要这样的东西

$( document ).ready(function() {
    $('input[type="checkbox"]').on('change', function() {
      var checkedValue = $(this).prop('checked');
        // uncheck sibling checkboxes (checkboxes on the same row)
        $(this).closest('tr').find('input[type="checkbox"]').each(function(){
           $(this).prop('checked',false);
        });
        $(this).prop("checked",checkedValue);

    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="checkboxes">
<tr>
     <td>
        <input type="checkbox" name="inStock[]"  />inStock
    </td>
    <td>
        <input type="checkbox" name="ordered[]" value="xxx" />ordered
    </td>
</tr>
<tr>     
    <td>
        <input type="checkbox" name="inStock[]" value="yyy" />inStock
    </td>
    
     <td>
        <input type="checkbox" name="ordered[]" value="xxx" />ordered
    </td>
</tr>
</table>

答案 1 :(得分:0)

我认为你要的是RadioButton。只要给他们不同的ID,但名称相同,你就可以只选择其中一个。

答案 2 :(得分:0)

尝试根据元素名称应用选择器:

$('input[name="ordered[]"]').on('change', function() {

或者你可能想要添加一些其他属性来识别你想要选择的特定元素。

答案 3 :(得分:0)

由于你没有指定哪个兄弟,所以你可以先使用jQuery对象抓取第一个元素:

$(this).siblings().first().prop('checked', false);

您也可以

$(this).siblings(".bar").eq(0).text()

您可以使用eq方法将匹配的元素集减少为特定索引处的元素集:

答案 4 :(得分:0)

如果您使用单选按钮并为所有这些按钮使用相同的名称,您只能一次选择一个单选按钮而其他单选按钮未被取消选中,就像我们的朋友提到的那样您需要包含{{1} <td></td>标记中的标记。