<label> を使う方法があります。
デモ
http://yokano.jp/demo/radio/
まず、ラジオボタンを作ります。
<label><input name="default" type="radio" checked>: A</label> <br> <label><input name="default" type="radio">: B</label>
<label> 要素に適当なクラスを設定します。
CSS で設定したクラスの下に入っている <input> 要素を非表示にします。
<label class="radio"><input type="radio" checked>: A</label> <br> <label class="radio"><input type="radio">: B</label>
ラジオボタンの画像を作成します。
<label> 要素の背景画像として設定します。
チェックされている <input> 要素を持っている<label>に "on"
チェックされていない <input> 要素を持っている<label>に"off"
というクラスを設定しています。
CSS でそれぞれのクラスの background-image を設定することで
ON / OFF を表現します。
jQuery で設定します。
// JavaScript $('.radio').each(function() { if($(this).find('input').is(':checked')) { $(this).removeClass('off').addClass('on'); } else { $(this).removeClass('on').addClass('off'); } });
/* CSS */ .radio { width: 17px; height: 17px; padding-left: 20px; /* 画像を表示するために左側を開ける */ background-repeat: no-repeat; } .radio.on { background-image: url("img/on.png"); } .radio.off { background-image: url("img/off.png"); }
最後にクリックされた時にラジオボタンを切り替える処理を JS で追加します。
$('.radio input').on('change', function() { $('.radio').removeClass('on').addClass('off'); if($(this).is(':checked') { $(this).parent().addClass('on').removeClass('off'); } });
以上で完了です。
参考
jQuery 簡単!チェックボックスやラジオボタンを装飾する方法(プラグイン不要) | Stronghold
http://zxcvbnmnbvcxz.com/form-improvement-2-7/
0 件のコメント:
コメントを投稿