3

有问题的移动设备是任何 Android 手机。我打开 firefox(顺便说一句,chrome 不会导致这种情况),访问 google 搜索或 IMDB 之类的网站,然后在搜索框中输入一些内容。一旦我输入第一个字母,本机自动完成功能就会在键盘上方激活。但我没有得到搜索框下方的建议下拉菜单!只有在我删除本机自动建议(或自动完成)之后,启用 javascript 的下拉菜单才会出现在搜索下方。

然而,在 google 搜索中,浏览器自动提示会立即起作用,并与本机自动提示一起出现:

谷歌的自动完成克服了原生的自动完成

但在 IMDB(或其他类似亚马逊)中,浏览器自动提示会被手机的自动提示延迟或阻止(并且在用户选择手机的建议或清除它之前不会出现): IMDB 的自动完成被本机自动完成延迟

我认为谷歌正在使用“keydown”事件来检测用户输入,但不确定如何,因为在我尝试自己在本地编写一个简单的自动完成功能后它并没有完全工作。“autocomplete=off”属性(在表单或目标输入字段上)也无济于事。

怎么可能不允许本机键盘自动提示延迟或阻止浏览器自动提示?

4

1 回答 1

0

使用输入事件来检测更改。

如果您使用的是 jQuery/zepto,请执行此操作。

$(selector).bind('input', function(){
   //autocomplete logic
});

在原生 js 中

document.getElementById(selector).addEventListener('input', function(){
    //autocomplete logic
});
于 2014-06-05T12:43:50.263 回答