我有一个在键入时触发自动完成搜索的搜索字段。我让它在keyup时触发。这在大多数浏览器中都能完美运行,但在 Android 上的 Firefox 中,这不起作用。似乎在键入时未触发 keyup 事件。仅当在 Android 键盘设置中打开单词建议时才会发生这种情况。
我在 Google 搜索中看到自动完成搜索适用于相同的设置,因此显然可以这样做。我想知道怎么做?这是我需要听的特殊事件吗?
此外,我尝试监听事件更改、keydown 和 keypress,但没有触发。
HTML:
<input type="text" id="searchField"
autocomplete="off" spellcheck="false" autocorrect="off" />
jQuery 事件绑定:
$('#searchField').keyup(function (e) {
var searchValue = $(this).val();
searchApi._executeAutocomplete(searchValue);
});
注意:
有时,按键事件被触发,这通常是敲击一个不会导致形成单词的过程的键。这里最明显的是Enter,它总是触发。另一个是Space,它触发是因为没有单词包含空格,因为空格是完成单词的定义。Backspace触发如果删除的最后一个字符不在一个单词中。这意味着如果您刚刚删除了单词的最后一个剩余字母(因此它是字段的开头,或光标后跟一个空格),它就会触发,但如果您在光标仍在的单词末尾删除了一些字符,则不会触发紧接着一封信。基本上,如果按键导致来自键盘应用程序的某种单词建议,则不会触发按键事件。
作为旁注,我可以说在同一设备上的 Chrome 中一切正常。