送信フォームの内容確認画面に、「送信する」ボタンと「戻る」ボタンを設置して、戻るを押すとhistry.back()で前のページに戻すというページを作りました。
で、動作確認の為戻るを押したところ、ページが戻らないでフォームが送信されてしまいました。
なんで???
ソースを見ると、ちゃんとhistry.back()と書いてあります。
ん? でもちょっと待てよ?
よーく見ると、こんなソースでした。
<input type="submit" value="送信する" /><input type="submit" value="戻る" onClick="history.back()" />
おお、戻るのtypeがsusbmitになっている・・・!!
でも、ちゃんと動いたぜ?
挙動がおかしいよって旨を、担当の某プログラマに伝えたところ、
「え?俺の方ではちゃんと動いたよ?」
との事。
う、嘘だろ承太郎!?
原因はブラウザ
上記ソースを試してみたところ、FireFoxだとsubmitが優先され、Opera、IE7ではhistory.back()が優先されるみたいです。
submitはフォームを送信する為にあるんだから、FireFoxの解釈の方が正しい気がするが、どうなんでしょう?
正しくは・・・
<input type="submit" value="送信する" /><input type="button" value="戻る" onClick="history.back()" />
input typeはbuttonですね。
やはりDuyaごときにHTML部分を任せたのが間違いでした。
HTML部分は簡単な部分でもちゃんと俺がやらないと駄目ですね。
次回から気をつけよう。
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。