我在 SO 上阅读了很多类似的问题,我知道这个问题已经被问了很多。我有禁用部分,它工作正常。但是,当我开始取消选中任一组中的复选框时,一切都将被撤消。基本上,当单击任何组的复选框时,应禁用另一个组。
这是我的 HTML
<tr>
<td><input type="checkbox" class="printgroup"></td>
<td><input type="checkbox" class="downgroup"></td>
</tr>
<tr>
<td><input type="checkbox" class="printgroup"></td>
<td><input type="checkbox" class="downgroup"></td>
</tr>
<tr>
<td><input type="checkbox" class="printgroup"></td>
<td><input type="checkbox" class="downgroup"></td>
</tr>
<tr>
<td><input type="checkbox" class="printgroup"></td>
<td><input type="checkbox" class="downgroup"></td>
</tr>
这是禁用任何其他组的 JS。我知道 JS 不是最漂亮的,也许你可以帮我把它做得更好?
$(function(){
$(".printgroup").click ( function() {
if ( !$(this).is ( ":checked" ) )
{
$(".downgroup").removeAttr ( "disabled" );
$('#printdown').attr('value', 'Go');
}
else{
$(".downgroup").attr ( "disabled" , true );
$('#printdown').attr('value', 'Print');
}
});
});
$(function(){
$(".downgroup").click ( function() {
if ( !$(this).is ( ":checked" ) )
{
$(".printgroup").removeAttr ( "disabled" );
$('#printdown').attr('value', 'Go');
}
else{
$(".printgroup").attr ( "disabled" , true );
$('#printdown').attr('value', 'Download');
}
});
});
编辑:应该更坚持。我在发布几分钟后解决了这个问题。
我只是替换了!$(this).is ( ":checked" )
to !$('.downgroup').is ( ":checked" )
Still,第二部分仍然存在:我让 JS 高效吗?我现在有两个功能。我可以将它们减少到一个吗?