- ベストアンサー
テキストボックにカーソルを合わせた状態でエンターを押しても、POSTが成功しない
- テキストボックにカーソルを合わせた状態でエンターを押しても、POSTが成功しない。PHP5.0 MySQL Smartyにて簡単なフォームを開発しています。
- テキストボックスにメールアドレスを入力してもらい、テキストボックス内にまだカーソルが残ったままの状態で、エンターを押すと、通常、postされるかと思います。もちろん、type='submit'の保存ボタンも取り付けていますが、それを利用(押さ)せずに、テキストボックス内にカーソルが残った状態でエンターを押して、postするようにしたいです。
- 問題のあるフォームだけがpostされない情況です。なぜ、テキストボックスを二つ付けるとpostされるのでしょう?
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
僕もこの件で初めて知ったことで、出ていくパケットを見たりphpでなくてperlで受信する実験もしてみて、この仕様はおかしいからIEのバグでしょうと思ったわけです。 <form~>の次に<input style="display:none">を書くのもよいかもしれません。 知識が増えました。 有難うございました!
その他の回答 (5)
- sntbo
- ベストアンサー率100% (1/1)
はい、perlで受信した時もphpと同じくkeepが取得できなかったので、 <form~>の次に<input style="display:none">を書いた場合と書かない場合で通信パケットを比較して、IEでは<input style="display:none">を書かない場合にkeepが送信されていないことが分かりました。
お礼
詳細な検証と解説有難うございました。 色々と私も頑張ってみます!! そうこうしてるうちに、また問題発生ではまってますが・・・。笑
- sntbo
- ベストアンサー率100% (1/1)
すみません。まだ勘違いしていました。 やっと質問が理解できました。 それはIEのバグです。 一つだけしか使用してはいけない仕様だった場合はIEユーザのためにGCI製作側が対策をしなくてはいけませんね。 二つ付けるとpostされるというのも確認できました。とりあえず対策になっているみたいですね。
お礼
度々有難うございます。 なんと、バグでしたか・・・。 そういえば、この件で色々ネット内を調べていたときに、 テキストボックス関係で、IEがバグだのどうのと、 細かく記載された記事がありました。 飛ばし読みしてたので、自分のレーダーには引っかからずスルーしてました。 なるほど・・・。バグですか・・。 確か通常のpost以外の方法で受け渡ししないとダメ?見たいなことが 書いてあったような・・。javascriptを絡めてだっけ? まあいいです。 とにかく出来ましたので よかったです! 有難うございました!
- sntbo
- ベストアンサー率100% (1/1)
<input name="mail" type="text" value="{{$smarty.session.mail}}" size="60" /> <input name="mail" type="text" value="{{$smarty.session.mail}}" size="60" /> のようにすると、上手くpostされるような理解不能な結果になる場合、原因は意外なところにあるかもしれません。 それでも原因はクライアントに返されたHTMLソースに存在していることには間違いなさそうです。 idの値が重複していたり、タグの閉じ忘れはありませんか? 質問文のformはPOSTが成功するはずなので、そのHTMLソースから少しずつ追加して実際のHTMLソースになるまでテストしていけば原因が分かると思います。
補足
有難うございます。 そうなんです。 原因はHTML側にあると思います。 その為、かなりソースを分断して、切り分け切り分けして、 原因を絞りこみました。 そして出た結果が、 <input name="mail" type="text" value="{{$smarty.session.mail}}" size="60" /> のテキストボックを2つ繰り返せばボスとされる という不可解な現象に行き着きました。 でも、原因を切り分けたのは、 <form> ~ </form> の間だけです。 <form>の中には、 テキストエリアだったり、 ラジオボタンだったり、 テキストボックス以外にも沢山 <form>内には存在します。 ですので、切り分けは厳重に繰り返しおこなったつもです。 でも、抜けているかもしれませんし、それに、HTML側に問題ありだとわかりましたので、 一つ進みました。 現状は、テキストボックスを2つ強引に作るために、 メールアドレスの入力と、そのアドレスの確認の為の入力で、テキストボックスを2つ連続して設置しました。 上手くいってます。 でも とても 気になりますよね・・・・。 もし、テキストボックス一つだけしか使用してはいけない仕様だった場合、これと同じ現象になったら、怖いですよね。 あー ストレス・・笑
- sntbo
- ベストアンサー率100% (1/1)
すみません。勘違いでした。 質問文の<form>のHTMLタグには問題はないと思います。 それ以外には分かりませんでした。
お礼
お返事有難うございます。 たった今も、あれこれと悩んでいる情況です。 もうあきらめて、問題点を残したまま、作業を迂回して進めようかなと・・。悩んでいます。 ちょっと気持ちの悪い状態で進めていくのは、 結構つらいものがありまして・・・。 さてどうしましょうか・・・。
- sntbo
- ベストアンサー率100% (1/1)
<input>が2つ以上あると普通には無理だったと思います。
補足
いえいえこちらこそ有難うございます。 perlでもダメでしたか。 <form~>の次に<input style="display:none">を書く... 一度また試してみます。 有難うございます。