【问题标题】:Mouse selecting autocomplete option - what javascript / jquery event?鼠标选择自动完成选项 - 什么 javascript/jquery 事件?
【发布时间】:2012-01-20 03:48:14
【问题描述】:

在 html 页面内的标准文本框中,当用户输入浏览器可识别的部分内容并显示“自动完成下拉菜单”时:

当用鼠标选择/单击它,从而在其文本框中输入值时,会触发什么 javascript 事件?

        $('#txt').blur(function () { console.log('text changed'); });
        $('#txt').change(function () { console.log('text changed'); });
        $('#txt').click(function () { console.log('text changed'); });
        $('#txt').focus(function () { console.log('text changed'); });
        $('#txt').focusin(function () { console.log('text changed'); });
        $('#txt').focusout(function () { console.log('text changed'); });
        $('#txt').mousedown(function () { console.log('text changed'); });
        $('#txt').mouseenter(function () { console.log('text changed'); });
        $('#txt').mouseleave(function () { console.log('text changed'); });
        $('#txt').mouseout(function () { console.log('text changed'); });
        $('#txt').mouseover(function () { console.log('text changed'); });
        $('#txt').select(function () { console.log('text changed'); });

这些都不起作用!

【问题讨论】:

  • "change" 将在您 Tab 或单击该字段时触发(在从自动完成中选择一个选项后)。请注意,即使它们起作用,鼠标事件也不够,因为您可以使用键盘上的浏览器自动完成功能。
  • this is selected,您的意思是建议列表中的自动完成项?你用的是什么插件?
  • 键盘事件工作正常,这就是为什么它们不是这个问题的一部分。
  • @DidierG。没有插件,浏览器在最新版本的 chrome 和 firefox 上原生实现自动完成。
  • 你找到解决办法了吗?

标签: javascript jquery events


【解决方案1】:

如果我正确理解您的问题,那么您没有触发任何事件的原因是因为您将它们附加到文本框,而用户单击的自动更正列表是一个单独的 html 元素。您需要将侦听器附加到用户实际单击的元素。

【讨论】:

  • 可能,但自动完成框甚至是 DOM 项吗?
  • 如果您指的是浏览器内置建议您之前使用过的值,那么没有。您将无法读取这些值,因为它们是用户私有的。
猜你喜欢
  • 2011-12-05
  • 2014-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-25
  • 2017-02-16
相关资源
最近更新 更多