最近、多くのチェックボックスを使用しています。クリックイベントでこの「問題」に遭遇し、.prevenDefault()
これに対する解決策を見つけようとしました。私の場合、他のフィールドに従ってチェックボックスをオン/オフできるかどうかを判断できるようにしたかったのです。イベントが発生する前に、ダイアログを開かなければならないこともありました。これは実際よりも簡単に聞こえました...
この jsFiddle では、問題の内容と、それをどのように解決しようとしたかを確認できます (以下のコードも参照してください)。ほとんどの回答は、クリックの代わりに変更を使用することを暗示しています。しかし、あなたが使用することはできません.preventdefault()
。
$('div').off('change','.wtf').on('change', '.wtf', function(e) {
//e.preventDefault();
//return false;
if($(this).prop('checked') == true) {
alert('I am true now, but I must stay false');
$(this).prop('checked', false);
}
else {
alert('I am false now, but I must stay true');
$(this).prop('checked', true);
}
});
これが最善の解決策ですか?または、状態の変更が許可されるまでチェックボックスを待機させる他の方法はありますか?
例: ユーザーが [OK] をクリックしてダイアログのメッセージに同意する場合にのみ、チェックボックスをオフにしたいと思います。