2010-01-28 52 views
2
$('input').keyup(function(e){ 
    var k = e.keyCode ? e.keyCode : e.which;   
    console.log(k); 

    }); 

Firefox和Chrome中的keyup()錯誤?

<input type="text" name="" autocomplete="off"/> 

爲什麼keyup會發射兩次,但只有在特殊鍵(箭頭,空格,退格等)的第二次打擊後? - 是否有解決方案來解決這個問題? - 自動完成它關閉 - 在IE中它工作正常 - 使用keydown或keypress對FF和Chrome工作正常 - 但我不能使用按鍵,因爲它不適用於特殊鍵的IE瀏覽器 - 我不能使用keydown,因爲我需要輸入的值,包括我剛輸入的字符。像這樣$(this).val(); - (我需要它進行實時搜索)。 Keydown會給出價值,但沒有最後的字符。也許你可以在這個方向給我一個想法 - 如何捕捉包含keydown的最後一個字符的值?

+0

你的問題很混亂。你究竟想要做什麼?太空是如何成爲「特殊鑰匙」? IE在用戶按下空格時觸發'keypress'就好了,'keyup'只會在釋放按鍵時觸發一次。 – 2010-01-28 16:41:46

+0

yes除了箭頭,退格,空格,pgDown等之外,鍵控會觸發一次。但它僅在FF和Chrome中有此問題。 這次使用控制檯,你會看到,第一次你推一個箭頭,它會給你沒有結果,在第二次罷工,例如左邊它將返回兩次37. – silversky 2010-01-28 17:49:17

+0

是按鍵在IE中工作正常,除了箭頭和少數其他鍵。用一個警報替換控制檯,並嘗試在IE中運行它,你會發現它不會返回任何箭頭或退格 – silversky 2010-01-28 17:52:00

回答

0

根據你的問題,我有點困惑,將結合keyup和.val()不做你想要的?

$('input').keyup(function(e){ 
    liveSearchFunction($(this).val()); 
}); 

如果不是請詳細說明一下。

+0

是的keyup會給我需要的價值(包括最後一個字符)。但是當我嘗試用向上和向下箭頭在結果列表上導航時,或者按退格鍵時,第一筆畫不會執行任何操作,而第二筆畫將觸發兩次。 (所以基本上它跳過一個結果)。當您按下箭頭或退格鍵,輸入等時,放置我的代碼並密切關注控制檯結果 – silversky 2010-01-28 17:33:26