ネットショップの注文フォームとかで色を指定してもらう時に、色を名称で選んでもらうだけではなく、商品の色が変わったり出来ないかな?と思って作ってみました。
注文フォームで選んだ内容が送信されないといけないので、色の選択はラジオボタンを使用します。だけども、ラジオボタンの丸いのを隠したかったので、CSSで消してラベルのみを表示しました。
<script> $(function(){ $("label").click(function(){ var selectcolor=$("input:checked").attr("value"); $("#colorbox").css("background-color",selectcolor); }); }) </script> <style type="text/css"> #colorbox { width:20px; height:20px; background-color:#ccc; } input { display:none; width:0; height:0; } </style>
html
<form name="form1" method="post" action=""> <p> <label> <input type="radio" name="color" value="red" id="color_0"> red</label> <label> <input type="radio" name="color" value="yellow" id="color_1"> yellow</label> <label> <input type="radio" name="color" value="blue" id="color_2"> blue</label> </p> <div id="colorbox"></div> </form>
ラジオボタンを使用することで、疑似セレクタの「:checked」が使えるようになるので、チェック状態の時にそのチェックボタンの属性値を取得し、cssで設定するようにしています。