jquery - Chrome 自动完成文本输入可防止触发 keydown 事件(jquery)

标签 jquery html google-chrome

当使用键盘导航到自动完成选项并按 [enter] 时,其他浏览器(例如:Firefox 14.0.1)会触发此事件,但 Chrome (21.0.1180.60 m) 不会。我正在使用 jquery 来 Hook 事件:

    $('input').keydown(function (event) {
        if (event.which == 13) {
            var $txt = $(this);
            //settimeout req. for firefox to append autocomplete
            setTimeout(function () {
                //**chrome doesn't get here until you hit enter a second time
            }, 0);

        }
   });​

示例如下: http://jsfiddle.net/a9vbe/4/

有人知道这里发生了什么或者可能的解决方案是什么?使用 keyup 事件可以“解决”问题,因为计算机比手指更快,但我宁愿不这样做。最好使用 Keydown(或 Keypress)。

最佳答案

在这样的情况下执行 keyup 并没有什么问题,特别是因为它解决了问题。问题是数据列表填充文本框的速度不够快,无法让 keydown 事件在输入上触发事件。此时您仍然专注于数据列表本身。这是 keyup 的优点之一的典型示例。

更不用说,一旦用户释放按键,它就会触发自动完成,因此您不会因为有人无缘无故地按住“F”键而触发1000x

在像这样的 ajax/自动完成情况下,我总是使用“keyup”。

关于jquery - Chrome 自动完成文本输入可防止触发 keydown 事件(jquery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11796932/

相关文章:

javascript - 将值从 iframe 覆盖层传递到父页面

javascript - 使用 stripe.js 在 stripe 中创建源后,stripeResponseHandler 函数未调用

javascript - 如何使用 JavaScript 将列表项添加到现有列表

javascript - 如何从选择器中获取所有元素包含的属性的每个值?

javascript - CanJS 将待办事项存储到文件中

html - <link> 元素上的类型 ="text/css"是强制性的吗?

javascript - AJAX:获取加载的 html 文档的元数据,例如元描述

css - 在 firefox 和 chrome 上打印 viewer bird 报告中的 pdf 文件

google-chrome - Chrome45 和 Firefox - 大多数网站上的 ERR_SSL_FALLBACK_BEYOND_MINIMUM_VERSION

javascript - 如何使用 JavaScript 设置 chrome 扩展的文件下载位置?