展开选择框时未触发 jQuery keypress/keyup/etc 事件

Mus*_*idd 5 javascript jquery

在此处查看我的代码示例:http : //pastebin.com/D1ZctG11

要点是:如果您扩展了一个选择框(通过键盘或鼠标),jquery 的关键事件似乎不会触发 - 至少在 Mac Chrome 中不会。

有什么解决方法吗?

我的最终目标是选择用户在使用optgroup元素时展开选择框时输入的内容。

编辑:

jsfiddle 链接:http : //jsfiddle.net/XacfX/

谢谢
穆斯塔法

Fra*_*ino 3

确实有问题,我在任何地方都找不到解释,但这似乎与浏览器甚至在浏览器窗口之外也会渲染下拉菜单弹出窗口有关(尝试使您的浏览器非常小并打开下拉菜单,它会留下边界),使其不是典型的文档元素。

一种解决方法是在下拉菜单中添加尺寸

<select name="sel_id" id="sel_id" size=5>
  <option value="0">Choose a new fixer...</option>
    <optgroup label="Group A">
    <option value="6366">Test User useruser</option>
  </optgroup>
  <optgroup label="Group B">
    <option value="5831">First Guy</option>
    <option value="1123">Second Guy</option>
    <option value="7232">Second Second Guy</option>
  </optgroup>
</select>

$(document).keypress(function(e){
    console.log(String.fromCharCode(e.keyCode));
});
Run Code Online (Sandbox Code Playgroud)

我相信周围的一些 DOM 专家可以对此做出一些解释。

  • 仅当您设置 size &gt; 1 时才会触发按键事件,但它也具有不再呈现为下拉列表而是呈现为列表框的效果。不过,谢谢你的想法……很奇怪。 (2认同)