2016-03-07 103 views
0

我在結果頁上有一個輸入字段。我用了以下事件:搜索按鈕不起作用

onkeypress="if (event.keyCode == 13) {document.getElementById('results-search').click()}" 

的問題是,當我執行搜索,沒事的時候我點擊搜索按鈕發生。當我點擊或按下輸入時,它不起作用。這隻發生在Mozilla Firefox和Microsoft Edge上,但在Chrome瀏覽器上正常運行。請幫忙

+0

爲什麼'.click()'?調用點擊處理程序,而不是... – Rayon

+0

請注意,結果顯示在同一頁面上,除了邊緣和firefox外Chrome瀏覽器一切正常。 – albertgeorge253

+0

請不要在線JS,可怕的做法。另外,如果您使用JQuery,爲什麼不使用'$('#results-search')'作爲選擇器。似乎加載它並沒有使用它有點沒有意義。 – Novocaine

回答

1

event.keyCode某些瀏覽器可能不支持該屬性。嘗試使用event.keyCode || event.which代替:

onkeypress="if ((event.keyCode || event.which) == 13) {document.getElementById('results-search').click()}" 

如果使用jQuery如果使用keyCodewhich財產不要緊,他們都將工作。您添加了jquery標記,但您沒有在代碼中使用它。

順便說一句。處理按鈕的click事件不是更好嗎?在我看來,它會看起來更優雅。將JavaScript代碼與HTML分開也很好。

document.getElementById('input-search').onkeypress = function(e) 
{ 
    if ((e.which || e.keyCode) === 13) 
     search(); 
}; 

document.getElementById('results-search').onclick = search; 

function search() 
{ 
    //do something... 
} 
+0

非常感謝您的回覆,我已經嘗試過,但仍然無效。 – albertgeorge253

+0

你能否提出另一種選擇?謝謝 – albertgeorge253

+0

您是否將輸入的ID更改爲您正在使用的ID? 「輸入搜索」只是一個例子。控制檯是否顯示任何錯誤?沒有看到完整的代碼很難說出什麼問題。 –