2012-04-11 63 views
1

我有一個html框和onKeyPress框的輸入框,我需要在那個輸入文本框中使用servlet搜索相同的文本谷歌呢。但是當我按下回車鍵時,瀏覽器地址欄中的網址發生變化,請求不會發送到servlet。可以做些什麼來避免這種情況?在HTML文件輸入框(在html中)的onKeyPress在不改變瀏覽器地址欄中的url的情況下調用servlet

輸入文本框

<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用於調用servlet的SearchService:

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

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

     request.send(null); 

回答

2

腳本更改:

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

和你的HTML這個

onkeypress="return searchKeyPress(event)" 

這將防止被提交的表單

+0

非常感謝。這工作正常。但是你能解釋一下它是如何工作的? – sonam 2012-04-11 16:51:02

+0

'return false'防止默認動作發生 - 您停止提交表單 – ManseUK 2012-04-11 17:10:41

+0

這也是對您的其他問題的回答,因此無法回答! - 用'return false'替換'return true' – ManseUK 2012-04-11 17:12:15

相關問題