2010-08-12 52 views
0

我爲keyPress添加了代碼(jQuery),並分別點擊了搜索文本框和按鈕。現在,當我點擊按鈕時,搜索查詢反映在瀏覽器(http://samplesite/default.aspx?k=query)中,但當我在搜索文本框中按Enter鍵時,搜索查詢不會顯示。任何人知道這個問題?謝謝。keyPress事件不反映k參數的變化

// Keypress event for search box 
$('#search-box').keypress(function (e) { 
    if ((e.which && e.which === 13) || (e.keyCode && e.keyCode === 13)) { 
     Search(); 
    }; 
}); 
// Click event for search button 
$('#search-button').bind('click', function() { 
    Search(); 
}); 

p.s.即時通訊使用location.assign

+0

你能告訴我們你的代碼嗎? – 2010-08-12 07:39:36

+0

它在這裏。 keypress(function(e){if((e.which && e.which === 13)||(e.keyCode && e.keyCode = == 13)){Search();};}); //點擊事件搜索按鈕$('#search-button')。bind('click',function(){Search();}); – SajmiraZ 2010-08-12 07:47:37

回答

0

你可以試試這個:

$('#search-button').bind('click', function() { 
    Search(); 
}); // order is important! 

$('#search-box').bind(($.browser.opera ? "keypress" : "keydown"), function (e) { // opera handle keypress differently 
    if (e.keyCode && e.keyCode === 13) { 
    $('#search-button').click(); 
    }; 
}); 

此外,您還可以嘗試jquery.hotkey了。

+0

謝謝。我會嘗試這個,並會讓你知道。^_^ – SajmiraZ 2010-08-12 08:58:08

+0

k參數仍然沒有更新,我正在使用IE 7.有沒有location.assign的問題?或者僅僅是那個keyPress不會更新IE7瀏覽器文本框中的url,並且只有當你點擊一個按鈕?再次感謝。 – SajmiraZ 2010-08-12 09:40:09

+0

我從未使用'location.assign'。但是你可以嘗試使用'window.location.assign'來代替。嘗試使用'console.log()'或只是'alert()'來調試,以查看整個事件卡住的位置。 – 2010-08-12 09:52:16