JavaScriptを(も?)使って、radioの選択状態を引き継ぐ
エラー画面でのお話し。
入力画面で、空欄などの入力ミスが合った場合に、元の入力画面(もしくはそれに似た入力が残っているエラー画面)にエラー付きで戻ってくる場合の挙動です。
で、こういうエラー画面の時に、以前入力したテキストやチェックボックスが反映されてないと、すごくめんどくさいですよね?
これのラジオの選択状態をJavaScriptもつかってやってしまおうというTipsです。
(別に普通にやればいいじゃんというのは、置いておいて……)
やることのアウトラインは、こんな感じです。
1.radioの値を受け取るためのhiddenを用意する
そのhiddenに選択したradioのvalueを埋める
2..hiddenの値によって、radioの選択状態を切り替える
1.radioの値を受け取るためのhiddenを用意する。そのhiddenに選択したradioのvalueを埋める
valueの値を複数ページ間で引き継ぐことをJavaScriptでやるとなると、Submit時にパラメータにやって……という感じに思われるかもしれませんが、ここはあくまでエラー画面だけの修正で。
まずに、何のために使うのかわからないhidden項目を用意して、そこにradioの値を入れるようにします。
<input type="hidden" name="tekitou" value="$radioの値">
こんな感じですね。
2.hiddenの値によって、radioの選択状態を切り替える
次に、そのhiddenに入っている値によって、radioの選択状態を切り替えます。
hiddenの値は、もともとradioの値ですから、またradioの値に戻るわけです。
こんなことしないでもいいかもしれませんが、radioの値がradioの値になって、そのradioの値がradioの値になって……と、ブラウザによっては、もしかしたら、な状況になるかもしれないので、一旦hiddenに逃げています。
そしてその値によって、radioの値を切り替えています。
書き方は、それぞれでしょうが、今回は、
if(document.フォーム名.hiddenのname.value == "hiddenの値"){ document.getElementById("radioのid1つ目").checked = true; } else{ document.getElementById("radioのid2つ目").checked = true; }
としました。
いかがでしょうか?