Javascript 输入框的onKeyPress(在html中)调用servlet,而不更改浏览器地址栏中的url

Javascript 输入框的onKeyPress(在html中)调用servlet,而不更改浏览器地址栏中的url,javascript,html,Javascript,Html,我有一个html格式的输入框,在该框的键盘上,我需要使用servlet搜索该输入框中的文本,就像google一样。但当我按enter键时,浏览器地址栏中的url会发生变化,请求不会发送到servlet。如何避免这种情况 在HTML文件中输入文本框 <input type="text" id="query" name="query" size="45" onkeypress="searchKeyPress(event)"> createHttpRequest用于调用servlet S

我有一个html格式的输入框,在该框的键盘上,我需要使用servlet搜索该输入框中的文本,就像google一样。但当我按enter键时,浏览器地址栏中的url会发生变化,请求不会发送到servlet。如何避免这种情况

在HTML文件中输入文本框

<input type="text" id="query" name="query" size="45" onkeypress="searchKeyPress(event)">
createHttpRequest用于调用servlet SearchService:

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

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

        request.send(null);

您需要防止提交表单的默认行为。文档。

更改脚本:

if (e.keyCode == 13)
{
    createHttpRequest();
    return false;
}
和你的html到这个

onkeypress="return searchKeyPress(event)"

这将阻止表单提交

非常感谢。这很好用。但是你能解释一下它是如何工作的吗?
return false
阻止了默认操作的发生-你阻止了表单的提交这也是你的另一个问题的答案,因此没有答案将
return true
替换为
return false
onkeypress="return searchKeyPress(event)"