submitボタンとhistory.backの挙動

Go Yoshiwara

Go Yoshiwara

送信ボタンと戻るボタン

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

次回から気をつけよう。

この記事のシェア数

2

Go Yoshiwara
Go Yoshiwara 代表取締役会長 / 吉原 ゴウ

1982年生まれ。信濃中学校卒業。フリーターとして23歳まで様々な職業に従事し数々のスキルを身につける。ウェブデザイナーとして活躍したのち、25歳で起業し代表取締役に就任。自然あふれる場所で生まれ、アウトドアスポーツをして育ったが故にITの道を志したが、近年、再びアウトドアな環境、遊び、生き方を模索して長野県に移住。わくわくするものをつくり続けていたい。

自己紹介をもっと見る