1000本突破
1000本突破

submitボタンとhistory.backの挙動

ゴウ

戻るボタン

送信フォームの内容確認画面に、「送信」ボタンと「戻る」ボタンを設置して、戻るを押すと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部分は簡単な部分でもちゃんと俺がやらないと駄目ですね。

次回から気をつけよう。