【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

KO

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

Page Topへ