- 締切済み
確認ページからフォームページに「戻る」時の入力内容の保持
ラジオボタンと連動したチェックボックスがあります。 ラジオボタンを選択し、さらにチェックボックスに入力後、「確認」をクリックして確認ページから「戻る」の時にチェックボックスの入力内容の値が保持されておらず、困っています。 Firefoxではきちんと動作するのですが、IEなど他のブラウザでは動作しません。 入力内容を保持する方法はありますでしょうか? <script> window.onload=function(){ var f0=document.getElementById("f0"); try{ f0.addEventListener("click",function(e){func(e)},true); }catch(e){ f0.attachEvent("onclick",function(e){func(e)}); } } function func(e){ var obj= (e.srcElement || e.target); if(obj.nodeName!="INPUT") return false; switch(obj.type){ case "radio": setRadio(obj); break; case "checkbox": setCheckbox(obj,"シルク","Kind04[]","SELECT"); break; } } function setRadio(obj){ var n=obj.parentNode.firstChild; while(n){ if(n.nodeName=="INPUT" && n.type=="checkbox"){ n.disabled=obj.value!="アリ"; n.checked=false; } if(n.nodeName=="SELECT"){ n.disabled=true; n.selectedIndex=0; } n=n.nextSibling; } } function setCheckbox(obj,v,n,nn){ if(obj.value!=v) return false; var node=obj.parentNode.firstChild; while(node){ if(node.nodeName==nn && node.name==n){ node.disabled=!obj.checked; node.selectedIndex=0; } node=node.nextSibling; } } </script> </head> <body> <form action="./postmail.cgi" name="f0" method="post" id="f0"> <fieldset> <legend>■分類</legend> <input type="radio" value="ナシ" name="print" class="print" checked>ナシ <input type="radio" value="アリ" name="print" class="print" >アリ ( <input type="checkbox" value="銀シールド" name="Kind04[]" class="Kind04" disabled>銀シールド <input type="checkbox" value="銀ペースト" name="Kind04[]" class="Kind04" disabled>銀ペースト <input type="checkbox" value="銅ペースト" name="Kind04[]" class="Kind04" disabled>銅ペースト <input type="checkbox" value="シルク" name="Kind04[]" class="Kind04" disabled>シルク 色 <SELECT name="Kind04[]" class="Kind04" disabled> <OPTION SELECTED VALUE="---">--- <OPTION VALUE="白">白 <OPTION VALUE="黒">黒 <OPTION VALUE="他">他 </SELECT> ) </fieldset><br> <input type="submit" value="確認する" /> <input type="reset" value="リセット" /> </form> </body> </html>
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
IEは戻ってきたときにwindow.onloadを再実行する特徴があります。 なので、初期値設定のfunctionを用意しておくと、いけるはずです。 (今回のケースでためしてみたら、結構面倒だったので説明は省きます)
- fujillin
- ベストアンサー率61% (1594/2576)
内容はみてませんが… 1)確認画面を別ウィンドウにする。 (元の画面は保持されたまま。) (ブラウザの戻るボタンは効かないけど) あるいは、ページ遷移せずにスクリプトベースで確認画面に切り替える (同じページ内なので値は保持される。) (ブラウザの戻るボタンを押すと前のページへ戻る) 2)クッキーを利用して、値を一時保存しておく。 (ロード時にクッキーがあればセットする) 3)「戻る」もcgi経由にして、cgiで値をセットする。 (ブラウザの戻るボタンだと効かない) あるいはURLのクエリ部を利用しても同じかな。 などでしょうか。 2)が普通なのかなぁ…?
お礼
大変参考になりました。 有難うございます。
お礼
大変参考になりました。 有難うございます。