■30993 / inTopicNo.2) |
Re[1]: テキスト入力後ENTERを押すとホストバックしてしまう |
□投稿者/ biac (12回)-(2009/01/12(Mon) 00:10:13)
|
■No30986 (初歩 さん) に返信 > テキストボックスに入力後、ENTERを押すと > ホストバックしてしまいます。
HTML の form 要素に含まれた type="text" 属性を持つ input 要素に対して、 ユーザーが Enter キーを入力したときにフォームの内容が送信されるというのは、 ブラウザの実装によります。 ※ この一文が理解できなければ、 HTML の勉強をしましょう。
IE や Firefox などで、 ブラウザの挙動をコントロールすることは、 HTML に Javascript のコードを埋め込んでやり、 かつ、 ブラウザが ( ユーザーの設定により ) そのコードの実行を許した場合に、 可能になります。 ※ どのような Javascript のコードを書けばいいのか、 これまた別途勉強しましょう。
以上がクリアできたら、 そのように修正した HTML を、 どのようにすれば ASP.NET で送り出すことが出来るか、 という問題になります。 この部分だけが、 ASP.NET のお話です。
よろしいですか? 高度な Web アプリケーションを作るためには、 HTML, CSS, Javascript といった知識が必要になります。 ASP.NET などの 「仕掛け」 は、 それらを簡単なコーディングで Web サーバーから送出するためのものにすぎません。 「仕掛け」 に用意されていることから少しでも外れたことをしようとすると、 とたんに上述したような知識とスキルが必要になってしまいます。 今回だけでなく、 Web アプリケーションを作っていくと、 いろんな問題が出てくるでしょう。 解決する手順は、 次のような順序になります。 1. 問題のページで、 ブラウザが受け取っている HTML ソースを見る。 2. ブラウザ側の処理で問題が起きているのか、 それとも、 サーバー側の処理で問題が起きているのか、 切り分ける。 3. ブラウザ側の処理に問題がある場合、 3.a) HTML, CSS, Javascript, ...etc. のどこに問題があり、 どのように修正すればよいかを検討する。 3.b) その修正を、 Web サーバから送出する HTML に反映させるにはどうすればよいかを検討する。
…と、 脅かしておいた上で。 f(^^;
Web サーバーから送出される HTML のフォームの 「送信ボタン」 は、 デフォルトでは input type="submit" ですが、 type="button" に替えてやると、 IE ではテキストボックスでの Enter に反応しなくなったはずです。 ( 繰り返しますが、 実装依存です。 他のブラウザではどうなるかわかりませんよ。 )
MSDN フォーラムの次のスレッドが参考になるかな。 http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1441676&SiteID=7
※ 最終的に Visual Studio 上で行う作業は、 たぶん 1行で書けます。 そこだけ知りたい! って思うかもしれませんが、 その手順に気付くためには上に書いたようなバックボーンが必要なので、 あえて書きません。
|
|