1

私のプレーンHTMLページには、ユーザーがキーワードを入力してからaspページにリダイレクトするためのテキストボックスがありました。ユーザーが送信ボタンをクリックしたときに、JavaScriptを使用してキーワードをキャプチャします。

ただし、ユーザーが Enter キーを押すと、HTML ページがリロードされ、エラー ページが返されます。Enterキーイベントをキャプチャするにはどうすればよいですか? aspページにリダイレクトされるようにします。ありがとう

次のように私のJavaScriptコード:

function searching() {            
            var keywordsStr = document.getElementById('keywords').value;
            var cmd = "http://xxx/SearchEngine/Searching.aspx?keywords=" + encodeURI(keywordsStr) ;
            window.open(cmd);
        }

次のように私のHTMLコード:

   <form name="form1" method="post" action="" >
     <input name="keywords" type="text" id="keywords" size="50" >
     <input type="submit" name="btn_search" id="btn_search" value="Search" onClick="javascript:searching(); return false;">
     <input type="reset" name="btn_reset" id="btn_reset" value="Reset">
   </form>
4

3 に答える 3

2

を使用することにオープンな場合はjquery

次のようなことができます。

$("#keywords").keyup(function(e){
   if(e.keyCode == '13')
   {
       //enter key
   }
});
于 2012-09-28T08:15:28.423 に答える
0

フォームの結果を新しいウィンドウで開いてみませんか?
私は投稿を使用することを好みます:

<form action="http://xxx/SearchEngine/Searching.aspx" method="post" target="_blank">

ただし、スニペットで行ったように、get呼び出しを使用できます

<form action="http://xxx/SearchEngine/Searching.aspx" method="get" target="_blank">



本当にエンターキーを検出したい 場合は、次のコマンドを使用して、ページ全体でonkeydownイベントを使用して、エンターキーに関連付けられたイベントが発生しないようにすることをお勧めします(フォームの送信など)。

document.onkeydown = checkKeycode
function checkKeycode(e) 
{
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    // alert("keycode: " + keycode);
    if (keycode == 13)
    {
        alert('enter key is pressed: now do something');
    }
}
于 2012-09-28T08:20:50.900 に答える
0

あなたの 'action' 属性は空です。これは、HTML ページがそれ自体に投稿されることを意味します (基本的にリロード)。データを投稿できるようにするには、ASP ページの URL をそこに入れる必要があります。

 <form name="form1" method="get" action="http://xxx/SearchEngine/Searching.aspx">
     <input name="keywords" type="text" size="50" >
     <input type="submit" name="btn_search" value="Search">
     <input type="reset" name="btn_reset" value="Reset">
 </form>

メソッドを に変更してmethod="get"、JavaScript 関数を模倣することもできます。送信で新しいウィンドウを作成する場合は、フォームにターゲット属性を追加できます。

target="_blank"
于 2012-09-28T08:23:06.440 に答える