- - PR -
KeyEnter押下時にButton_Clickイベントを発生させる 使用言語C#
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-09-16 13:29
「KeyEnter押下時、フォーカスの移動」というスレッドを見たのですが、解決方法がわからなかったので書き込みさせてもらいます。
以前に、画面のどこを選択してもKeyEnterを押すと特定の画面へ移動してしまうという不具合が起こり、その対策として、以下のようなJavaScriptを記述しました。 <script language="JavaScript"> function chkEnter(){ if(window.event.keyCode == 13){ return false; } return true; } </script> <asp:textbox id="txtSearchLocationName" onkeydown="return chkEnter();" runat="server" Width="136px" CssClass="controls"></asp:textbox> これにより、KeyEnterを使用不可にしておりました。 今回、TextBoxだけは、KeyEnter押下時に検索するという処理を加えることになりました。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5118&forum=7&6 に、 ----------------------------------------------------------------------- Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown If e.KeyCode = Keys.Enter Then Me.SelectNextControl(sender, False, True, True, True) End If End Sub ------------------------------------------------------------------------ とあったので参考にしようと思ったのですが、C#ではTextBoxにKeyDownイベントはなかったので、どうすればよいかと悩んでおります。 TextBoxに検索項目を入れて、TextBoxでKeyEnterを押すと検索が走るというのはYahooなど、どこにでもあるあたりまえの処理ですが、これをどう実現すればよいか分からずに困っています。 どなたかご教授願います。 | ||||||||||||
|
投稿日時: 2003-09-16 17:16
WindowsアプリでのTextBoxとWebアプリでのTextBoxは全く違うものですから
まず、切り分けて考えるようにしましょう。 で、WebアプリでTextBox(というより、Inputタグ)内での動作を追加する 場合は、KeyEnterでの処理として組み込まれているようなスクリプトを 記述する必要があります。 chkEnter関数の中で、イベントが発生したのがInputタグなのかどうかを 判別し、Inputタグ内であったら検索ページにとぶ、といった処理を スクリプトで記述してあげましょう。 | ||||||||||||
|
投稿日時: 2003-09-16 19:21
小野@EACさん、早速の返答ありがとうございます。
先ず、自分の作りたいものはWebアプリです。そうしますと、下に書いたサンプルはWindowsアプリなので使えなくて当然ですね。(こんなことにも気づかないとは… ![]() もうひとつ、疑問点が出てきたので書き込みします。 先ず、WebフォームとHTMLの違いですが、サーバーサイドで処理を行うのがWebフォーム、クライアント側で処理を行うのがHTMLと私は解釈しております。 で、WebフォームでできたButtonでクリックするとサーバーサイドでイベントが起こるわけですが、このクリックイベントをJavaScriptで記述できるんでしょうか? | ||||||||||||
|
投稿日時: 2003-09-16 21:42
私の解釈ですが、 「サーバ上でブラウザに返すためのHTMLを組み立てるという処理を 行っているのがWebフォーム」 だと考えています。
Buttonをクリックした場合、PostBackしてサーバにアクセスするのであれば そのイベントをサーバ側で処理することができます。 イベントに対する処理はASP.NETの内部での記述となりますので、C#でもVB.NETでも JScriptでも記述できます。 Buttonをクリックした場合、サーバへアクセスさせないで、ブラウザの中で 処理させることも可能です。 この場合は、スクリプトによってDHTMLを記述することになります。 このあたり、何がしたいかによって、切り分ける必要があります。 | ||||||||||||
|
投稿日時: 2003-09-17 17:42
どのように書いていいのか恥ずかしながらまったく分かりません![]() やりたいことは 1.Webフォームのテキストボックスに検索条件を入れる 2.テキストボックス入力後、Enterキーを押す 3.検索実行ボタンを押すことと同様に検索処理が走る。 です。 目標はほとんどの検索サイトにある、TextBoxに検索項目を入れて検索が走るという流れです。 テキストボックス <asp:textbox id="txtSearchLocationName" onkeydown="return chkEnter();" runat="server" CssClass="textcontrols" Width="136px"></asp:textbox> 検索ボタン <INPUT id="Submit1" type="submit" value="Submit" name="Submit1" runat="server" CausesValidation="False"> 現時点でのJavaScript <script language="JavaScript"> function chkEnter(){ if(window.event.keyCode == 13){ //return false; } return true; } </script> 上記のスクリプトは、画面上どこをマウスでクリックしたあと、Enterを押すと特定の画面へ移動する不具合があったため、Enterを使えなくなるように、全てのTexやFormに onkeydown="return chkEnter();" と書き加えました。 はほとんどの検索サイトにある、TextBoxに検索項目を入れて検索が走るという流れは自分なりに色々と調べまわったのですが、サンプルソースなども無く困り果てております。 ご教授よろしくお願いします。 | ||||||||||||
|
投稿日時: 2003-09-17 23:47
テキストボックスでEnterキーを押下した時のみsubmitするサンプルです。
[ メッセージ編集済み 編集者: ぴで 編集日時 2003-09-17 23:47 ] | ||||||||||||
|
投稿日時: 2003-09-18 00:31
aspのことはわかりませんが、HTMLだとテキストボックスでEnterキーを押した場合は同一フォームのsubmitボタンが押されたことになります。
Yahooとかの検索ではJavaScriptとか使わなくてもあのような動きになります。 で、ページのどこでもEnterキーを押したらボタンが押されるのはどのようなときかやってみたら、このようなコードのときは大丈夫なのですが、 <html> <body> <form> <input type="text"> <input type="submit" onclick="alert('a')"> </form> </body> </html> 下のようなコードだとなりました。 <html> <body> <input type="text"> <input type="submit" onclick="alert('a')"> </body> </html> formタグで囲んでないときにはどこでenterキーを押しても反応してしまうようです。 以下のようにinputタグのタイプをbuttonにするとまったく反応しなくなります。 <html> <body> <input type="text"> <input type="button" onclick="alert('a')"> </body> </html> | ||||||||||||
|
投稿日時: 2003-09-18 00:56
<form onsubmit="alert('b')"> と入れてみるとよく分かります。
|
1|2|3
次のページへ»