启用/禁用按钮基于多个已选中复选框的计数,所有复选框都具有不同的ID

gen*_*ion 4 javascript asp.net jquery gridview

我在这样的表格中有一个复选框列表以及一个按钮: -

<table id="mytable">
<tr><th>checked</th><th>id</th><th>text</th></tr>
<tr><td><input id="cb1" type="checkbox" name="checker1"/></td><td>123</td><td>abc</td></tr>
<tr><td><input id="cb2" type="checkbox" name="checker2"/></td><td>456</td><td>def</td></tr>
<tr><td><input id="cb3" type="checkbox" name="checker3"/></td><td>789</td><td>ghi</td></tr>
<tr><td><input id="cb4" type="checkbox" name="checker4"/></td><td>454</td><td>ghi</td></tr>
<tr><td><input id="cb5" type="checkbox" name="checker5"/></td><td>565</td><td>ghi</td></tr>
</table>

<input type="button" name="myjqbutton" value="My Jquery Button" id="jqb" disabled="true"/>
Run Code Online (Sandbox Code Playgroud)

我想要做的是,只有在选中一个或多个复选框时才启用该按钮.

最初的想法是我需要计算表中检查的复选框的数量,我可以使用.each将它们计入变量.

var mytable= document.getElementById('mytable');
$('input:checkbox:checked', mytable).each(function() {
// whatever here
});
Run Code Online (Sandbox Code Playgroud)

但是,每个复选框都需要一个更改的事件来检查计数并启用或禁用该按钮,具体取决于count> 0.

或者是否有更简单的方法来实现我正在寻找的功能.

Nic*_*tti 5

你可以做到

$('#mytable input:checkbox').change(function(){
  $("#jqb").prop("disabled", $('#mytable input:checkbox:checked').length ===0);
}); 
Run Code Online (Sandbox Code Playgroud)

  • +1迄今为止最好,最完整的解决方案!:) (2认同)