私は 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" )
、!$('.downgroup').is ( ":checked" )
2 番目の部分が残っています。では、JS を効率的にしますか? 私は今2つの機能を持っています。それらを1つに減らすことはできますか?