チェックボックスをラジオボタンとして作成し、さらに選択を解除できる関数を作成しました。私が遭遇している問題は、同じボックスが2回目に少し速くクリックされた場合(高速のダブルクリックではない)、イベントをキャッチしていないなど、何も実行されないことです。
それらは名前を共有する2の倍数になります。
checkbox name 1
checkbox2 name 1
checkbox3 name 2
checkbox4 name 2 ....
これは私の機能です、それはそのグリッチを除いてうまく機能します。
$('#MyDiv').find('input[type="checkbox"]').click(function() {
if (!$(this).is(':checked')) {
$(this).prop('checked', false);
return;
}
$('#MyDiv').find('input[type="checkbox"][name=' + $(this).attr('name') + ']').each(function() {
$(this).prop('checked', false);
});
$(this).prop('checked', true);
});
HTMLの例:
<div id="MyDiv">
<div>
<p>
<input id="MyDivUsage_Yes" type="checkbox" name="MyDivUsage" />
<label for="MyDivUsage_Yes">Yes</label>
<input id="MyDivUsage_No" type="checkbox" name="MyDivUsage" />
<label for="MyDivUsage_No">No</label>
</p>
</div>
</div>
何らかの理由で、jsfiddleでは機能しません。