javascript - GridView WebForm 每行有多个复选框,但每行只允许检查 1 个

标签 javascript jquery asp.net gridview

我有代码,其中 asp.net webforms 中的 gridview 吐出 3 个复选框,我希望 Jquery 可以轻松遍历 ID,并且只允许每行检查 1 个复选框。

它们将始终具有相同的名称,只是结尾数字会增加,因此第 1 行可能没有数字,但然后以 1 结尾,然后以 2 结尾,然后它们都以 3 结尾,等等...

我可以用很长的方式编写大量的 javascript/jquery,其中我检查每个特定的复选框以及以 1 结尾的复选框,这些复选框不能有任何其他以 1 结尾的复选框进行检查,必须取消选中它们.

我正在考虑正则表达式,其中我检查ID的开头,然后检查ID的结尾,并理解每个ID具有“chkCtrl”并以被选中的特定框的唯一数字(如“1”)结尾将取消选中其他以 1 结尾的“chkCtrl”。因此 Out1 , Y1 , N1

我确信有一种快速的方法可以做到这一点,但我似乎找不到它的例子。

示例

<table>
<tr>
    <td>Out</td>
    <td>Yes</td>
    <td>No</td>
</tr>
<tr>
    <td>
        <input id="MainContent_chkCtrlOut" type="checkbox" name="ctl00$MainContent$chkCtrl" />
    </td>
    <td>
        <input id="MainContent_chkCtrlY" type="checkbox" name="ctl00$MainContent$chkCtrl" />
    </td>
    <td>
        <input id="MainContent_chkCtrlN" type="checkbox" name="ctl00$MainContent$chkCtrl" />
    </td>
</tr>
 <tr>
    <td>
        <input id="MainContent_chkCtrlOut1" type="checkbox" name="ctl00$MainContent$chkCtrl" />
    </td>
    <td>
        <input id="MainContent_chkCtrlY1" type="checkbox" name="ctl00$MainContent$chkCtrl" />
    </td>
    <td>
        <input id="MainContent_chkCtrlN1" type="checkbox" name="ctl00$MainContent$chkCtrl" />
    </td>
</tr>

最佳答案

这可以通过编写几行 jquery 轻松完成。例如,请参阅下面的代码。

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

jsFiddle:https://jsfiddle.net/taleebanwar/a3qk0kc1/1/

<小时/>

编辑

正如 Tom Stickel 在评论中提到的那样,使用 removeProp 是一个坏主意。它可能无法在 jquery 2.* 中工作。请参阅Tom Stickel's answer以获得更好的方法来做到这一点。

关于javascript - GridView WebForm 每行有多个复选框,但每行只允许检查 1 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32391400/

相关文章:

jquery - 输入类型日期格式和日期选择器问题

asp.net - System.Data.SqlClient.SqlException : The SELECT permission was denied on object 'tableName' , 数据库 'dbName' ,架构 'dbo'

asp.net - 针对测试数据库集成测试 Web 服务

javascript - 如何从 react 日期选择器中删除此返回日期中的所有额外数字?

javascript - 检查待处理的 AJAX 请求或 HTTP GET/POST 请求

javascript - 如何防止文本和/或页面内容在 html 和 javascript 中双击突出显示?

javascript - jQuery live 和 IE 的问题

jquery - Cordova/Jquery Mobile - 单击按钮激活两个页面?

c# - Automapper、Mapper 未初始化。使用正确的配置调用初始化

javascript - 如何在 react 中点击时填充初始数据