我在JavaScript/jQuery中遇到了捕获退格键的困难。在Firefox,Safari,Opera,Chrome和iPhone/iPad上,我可以通过如下方式捕获文本输入框上的keyup事件:
$(id_input).keyup(function(event) {
that.GetHints($(this).val().trim(), event, fieldName);
});
该事件捕获用户按键,然后将其发送到一个函数中以发出ajax查找调用。但当用户希望删除已经输入的字符时,我的问题就来了。在我可以访问的所有浏览器中,除了我的Droid手机外,当我按下退格键时,这个keyup事件会捕获由$(this).val().trim()返回的值,并将其发送到GetHints函数中进行处理。然而,在Droid上,直到用户删除$(this)中的每个字符,这个keyup事件和等效的keydown事件都不会触发。例如,如果我输入"cu",然后退格键删除"u",只留下输入字段中的"c",在除Droid外的所有浏览器中,keyup事件将触发并调用函数
GetHints("c", event, fieldName)
。但在Droid上,keyup事件从未触发。我错过了什么?为什么我的Droid软键盘或硬键盘上的退格键不能按预期工作?我该如何解决这个问题?