ラジオボタンでチェックさせ、その値を別のテキストフィールドに反映させる方法。
例えば、メールアドレス入力のときに@以降を選択させることができる。
| 1 2 3 4 5 6 7 8 9 10 11 | <input type="email" name="your-email"> <p>※@以降を以下から選択できます。</p> <ul class="addressList">   <li><label><input type="radio" name="addressSelect" value="" checked>選択なし</label></li>   <li><label><input type="radio" name="addressSelect" value="@docomo.ne.jp">@docomo.ne.jp</label></li>   <li><label><input type="radio" name="addressSelect" value="@ezweb.ne.jp">@ezweb.ne.jp</label></li>   <li><label><input type="radio" name="addressSelect" value="@softbank.ne.jp">@softbank.ne.jp</label></li>   <li><label><input type="radio" name="addressSelect" value="@yahoo.co.jp">@yahoo.co.jp</label></li>   <li><label><input type="radio" name="addressSelect" value="@gmail.com">@gmail.com</label></li> </ul> | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $(function(){     var addressSelect = $('input[name="addressSelect"]');     var yourEmail = $('input[name="your-email"]');     addressSelect.change(function(){         var selectVal = $(this).val();         var getAddressData = yourEmail.val();         var posData = getAddressData.indexOf('@');         if(posData < 0) {             addressData = getAddressData;         } else {             addressData = getAddressData.substring(0,posData);         }         yourEmail.val(addressData + selectVal);     }); }); | 
8行目の
| 1 | var posData = getAddressData.indexOf('@'); | 
で、テキストフィールド内の@以降の文字列を取得。
| 1 2 3 4 5 | if(posData < 0) {     addressData = getAddressData; } else {     addressData = getAddressData.substring(0,posData); } | 
もし@以降に文字列があれば、@までの文字列を取得する。
@以降に文字列がなければ、全ての文字列を取得する。
これにより、例えば
hogehoge@gmail.com
と既に入力していても、@以降のみを変更することが可能。
そんな処理は必要なく、ただ反映させたいだけであれば上記をまるっと削除し、
| 1 2 3 4 5 6 7 8 9 10 11 | $(function(){     var addressSelect = $('input[name="addressSelect"]');     var yourEmail = $('input[name="your-email"]');     addressSelect.change(function(){         var selectVal = $(this).val();         var getAddressData = yourEmail.val();         yourEmail.val(getAddressData + selectVal);     }); }); | 
これだけでOK。
ラジオボタンで値を選択すると、テキストフィールドに入力した値は削除され上書きされる。






 
        