我很難在javascript/jQuery中捕獲退格鍵作爲鍵盤事件。在Firefox,Safari,Opera或Chrome瀏覽器,並在iPhone/iPad的,我捕捉到這樣一個文本輸入框keyup事件:捕獲backspace的鍵盤事件
$(id_input).keyup(function(event) {
that.GetHints($(this).val().trim(), event, fieldName);
});
此事件捕獲用戶的擊鍵,然後將它們發送給一個函數發出ajax查詢調用。
我的問題出現在用戶希望退回他/她已輸入的字符時。在除了我的Droid手機以外的所有瀏覽器中,當我按下退格鍵時,此鍵盤事件捕獲由$(this).val()。trim()返回的值並將其發送到函數中進行處理GetHints。然而,在Droid上,這個keyup和相等的keydown事件都不會觸發,直到用戶退出$(this)中的每個字符爲止。例如,如果我輸入「cu」,然後退回到「u」,在輸入字段中只留下「c」,除Droid之外的所有瀏覽器中,關鍵事件將觸發並調用功能GetHints("c", event, fieldName)
。在Droid上,keyup事件從不會觸發。
我錯過了什麼?在我的Droid上,軟鍵盤或硬鍵盤上的退格鍵如何/爲什麼沒有按預期運行?我如何解決這個問題?
只是在黑暗中拍攝,因爲它聽起來像一個機器人問題:你嘗試過keydown或按鍵事件嗎?也許你會有更多的運氣。 – Jon 2011-06-03 03:43:48
是的,我會嘗試按鍵而不是鍵盤 – jnoreiga 2011-06-03 12:17:23