formタグの変な書き方ではまった
formタグを使って応募フォームを作る。
モバイルサイトに限らず、めちゃめちゃ一般的で当たり前なことですが、そこでこんなはまり方をしました。
あるモバイルサイトを後輩君が作成していて、テストフェーズに入っていました。そこで、特定の端末だけ、応募フォームの確認画面が NotFoundになってしまうという話がきました。
確認してみてたところ、確かに SoftBankの J-N51では、NotFoundになり、確認画面が見れません。
しかし、docomoの各端末や、PCからはちゃんと動きます。
この J-05SHは、端末操作でブラウザで開いているページのURLを確認する方法がありません(あるのかもしれませんが、わかりません)なので、原因不明な感じに。
結局、このNotFoundになってしまっているページ名で、ソースを全文検索したら、問題の箇所を発見することが出来ました。
原因はこんな感じ。
<html> <head> </head> <body> <form action="正しい遷移先" method="post"> フォーム部品いろいろ <form action="正しくないモック時の遷移先"> フォーム部品いろいろ </form> </body> </html>
こんな感じになっていて、formタグがデザイナーさんが作った、静的ページとして確認時のものが残ってしまっていました。
ここからは想像ですが、docomoの場合、methodが無いと正しいformタグとして認識しないようなので、一見うまく動いているようでした。
PCの場合もよしなに処理をしてくれていたようです。
まぁ、単にhtmlがおかしいので、それを直せばいいと言えばそれまでですが、フォームの部品が間にいろいろ挟まり、見通しが悪くなるとこんなことも起こってしまいました。
さらに、一見動いてしまうので、発見が遅れるということも。
なんからの方法でhtmlの正当性チェックとかを機械的にかける仕組みを考えたいところです。