javascript - 在按钮单击同一行复选框时应选中

标签 javascript jquery asp.net

我在表格每一行的末尾放置了一个按钮和一个复选框。我现在想要的是,如果我单击第 1 行中的按钮,则仅选中第 1 行中的复选框,依此类推。如果我依次从第一行转到最后一行,代码工作正常。 如果我直接点击例如,就会出现问题。第二排。如果我单击第二行,则选中第一行的复选框。

我已经尝试匹配按钮和复选框控件的 ID,但这是不可能的,因为 ID 中的名称总是不同的。

  cols += '<td><button type="button" class="btn btn-info btn-sm btn-block" onclick="req_ser()" id="check_btn' + limit + '" value="' + data + '">Request</button></td>';

cols +='<td><input type="checkbox" class="chec" id="check' + limit + '" value="' + data + '" disabled="disabled"></input></td>';


function req_ser() {    
    var sl_num = [];
    var count = 0;
    for (var bv = 0; bv <= limit; bv++) {
        var stai;       
        var bvv = bv + 1;
        var cls = document.getElementsByClassName("btn btn-info btn-sm btn-block");
        var chs = document.getElementsByClassName("chec")
        cls[bv].id = "check_btn" + (bv + 1);
        chs[bv].id = "check" + (bv + 1);
        alert(cls[bv].id);
        alert(chs[bv].id);
        //stai = $('#check' + bvv + '').on(':click');
        //stai = $('#check' + bvv + '').is(':clicked'); 
        //stai = $('#check' + bvv + '').data(':clicked', true); 
            $('#check' + bvv + '').prop('checked', true);
            stai = $('#check' + bvv + '').is(':checked');       
        if (stai == true) {
                sl_num.push({
                    "serial": document.getElementById("slnchk" + bvv + "").innerText,
                });            
            break;            
        }
    }

预期结果是我单击的任何行按钮,只应选中该行复选框。请对此进行指导。

最佳答案

您可以在 jquery 中使用 .closest().find() 来完成。

例子:

$('td .btn').on("click", function() {
  $(this).closest('tr').find('.chec').prop("checked", true);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <tr>
    <td><button type="button" class="btn btn-info btn-sm btn-block">Request</button></td>
    <td><input type="checkbox" class="chec" disabled="disabled"></td>
  </tr>
  <tr>
    <td><button type="button" class="btn btn-info btn-sm btn-block">Request</button></td>
    <td><input type="checkbox" class="chec" disabled="disabled"></td>
  </tr>
  <tr>
    <td><button type="button" class="btn btn-info btn-sm btn-block">Request</button></td>
    <td><input type="checkbox" class="chec" disabled="disabled"></td>
  </tr>
</table>

关于javascript - 在按钮单击同一行复选框时应选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57111773/

相关文章:

javascript - 如何在 chromium 浏览器中创建文本或将文本转换为音频?

jquery - 使用 jQuery Mobile 在所有页面上保留导航栏

javascript - 如何将 jQuery/Javascript 函数转换为方法

javascript - 使用 Javascript 强制文本框中事件 Onkeypressed 的数字精度

c# - Entity Framework - 数据库和模型列/类型不匹配 - 映射选项

c# - 从隐藏的边界域中获取值(value)?网络

javascript - 使用 javascript 和 html5 进行眼睛检测

javascript - 如何使网站的加载屏幕保持一定秒数

javascript - HTML5 音频无法在 Android 设备上播放

javascript - 检查元素是否是父元素的子元素