
【jQuery】label でラジオボタンのオン/オフ

通常 label ではラジオボタンの選択しかできませんが、
すでに選択済みだった場合に解除もしたい、今回はその方法を考えてみました。
デモ
「A」「B」それぞれが label になっています。
クリックして動作を確認してみてください。
一度目はラジオボタンのチェックが入り、二度目はチェックが外れます。
See the Pen WXyXoL by leo (@leo-trym) on CodePen.
ソース
HTML
<label class="label" for="foo">A</label> <label class="label" for="bar">B</label> <input id="foo" type="radio" name="radio"> <input id="bar" type="radio" name="radio">
JS
$(function(){ $('label').click(function(){ var e = $(this).attr('for'); // for を取得 var e = $('#' + e); // for をセレクタに整形 if ( e.prop('checked') ) { // チェック済みなら e.prop('checked', false); // チェックを外す return false; // label のクリックを無効化 } }); });
for 属性を取得してチェック済みならラジオボタンのチェックを外します。
Writer

KO
誕生日に会社のみんなから『世界文学全集』をプレゼントしてもらった読書好きフロントエンド・エンジニアです。WordPressとMovableTypeが得意ですが、本当の特技は薪割りです。