【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が得意ですが、本当の特技は薪割りです。

Contact

ご提案依頼、ご相談、お見積もりなど
お気軽にお問合わせください。

03-6303-9671

平日 10:00~19:00

「Web制作について」とお伝え頂ければ
担当者に取次させていただきます。

Mailform

contact@trym.jp
でも受け付けております。