1

html形式の入力ボックスがあり、そのボックスのonKeyPressは、Googleと同じようにサーブレットを使用してその入力テキストボックス内のテキストを検索する必要があります。しかし、Enterキーを押すと、ブラウザのアドレスバーのURLが変更され、リクエストがサーブレットに送信されません。これを回避するために何ができるでしょうか?

HTMLファイルの入力テキストボックス

<input type="text" id="query" name="query" size="45" onkeypress="searchKeyPress(event)">

SearchKeyPress(e)コード

function searchKeyPress(e)
    {
        if (typeof e == 'undefined' && window.event) { e = window.event; }
        if (e.keyCode == 13)
        {
            createHttpRequest();
        }
    }

createHttpRequestは、サーブレットSearchServiceを呼び出すために使用されます。

var url="http://localhost:8080/final_project/SearchService?user_query="+getQueryString();

        request.onreadystatechange = handleSearchResult;
        request.open("GET",url,true);

        request.send(null);
4

2 に答える 2

2

スクリプトを変更します:

if (e.keyCode == 13)
{
    createHttpRequest();
    return false;
}

そしてこれへのあなたのhtml

onkeypress="return searchKeyPress(event)"

これにより、フォームが送信されなくなります

于 2012-04-11T16:38:20.170 に答える
0

フォームを送信するデフォルトの動作を防ぐ必要があります。ここのドキュメント。

于 2012-04-11T16:37:21.297 に答える