2012-02-15 41 views
0
$(".tbSearchBox").keyup(function (event) { 
    if (event.keyCode == 13) { 
     alert("ye"); 
     searchSet = $(this).val(); 
     $(".btnSerachButton").click(); 
    } 
}); 

即時通訊使用上述代碼來檢測用戶是否在搜索框中鍵入的東西,然後按回車鍵而不是按下搜索按鈕。這適用於除IE之外的所有瀏覽器。 IE可以讀取on keyup事件,但會繞過使用的if語句。任何想法爲什麼?onkeypress事件沒有發射在即

+1

http://api.jquery.com/event.which/「event.which屬性規範化event.keyCode和event.charCode。 「 – karim79 2012-02-15 11:04:51

回答

1

有一些不兼容的,即有關事件和鍵,以便使其瀏覽器兼容試試這個

$(".tbSearchBox").keypress(function (event) { 
    var ev = event || window.event; 
    var key = ev.keyCode || ev.which || ev.charCode; 
    if (key == 13) { 
     ev.preventDefault(); 
     alert("ye"); 
     searchSet = $(this).val(); 
     $(".btnSerachButton").click(); 
    } 
}); 
+1

嘗試,但即使仍然繞過javascript併發布頁面 – user987723 2012-02-15 11:11:58

+0

張貼可以發佈HTML元素'.tbSearchBox'? – 2012-02-15 11:14:57

+0

'事件。 preventDefault();''也許? – Stefan 2012-02-15 11:15:59

0

你應該use event.which here正常化event.keyCodeevent.charCode

if (event.which == 13) ... 
+0

試過這個,仍然適用於其他瀏覽器,但不適用ie ie即將頁面張貼在javascript之前 – user987723 2012-02-15 11:22:59

1
var code = (event.keyCode ? event.keyCode : event.which); 

,或者甚至

var code = event.keyCode || event.which; 
+0

event.which'屬性標準化了event.keyCode和' event.charCode'。因此,只需要觀看'event.which'就足夠了,參見http://api.jquery.com/event.which/和https://developer.mozilla.org/en/DOM/event .charCode#注意 – Stefan 2012-02-15 11:21:53

+0

謝謝,給了這個去,但沒有運氣,頁面只是讀取行 – user987723 2012-02-15 11:27:26