繁体   English   中英

显示html下拉菜单时如何使用javascript或jquery获取键盘输入?

[英]How to use javascript or jquery to get keyboard input when html drop down menu is show?

我想在用户按下键盘时使用javascript或jquery获取输入。 下拉菜单不显示时有可能。 显示下拉菜单时,不会触发onkeypress。

<html>
<body>
<select id="test" onkeypress="sayHello()">
<option value="1">1234</option>
<option value="5">5678</option>
</select>
</body>

<script>
function sayHello(){
    alert("Hello");
}
</script>
</html>

我认为默认选择下拉菜单是不可能的,因为打开的下拉菜单创建在浏览器窗口的顶部,而不是文档的一部分。

您可以使用/构建某种替换,以使用文档内部的html元素呈现自定义下拉菜单,然后捕获所需的所有事件。

例如看一下Select2 但是,还有许多其他库。

这是一个使用select2的示例,并且仅在发生keydown事件并且下拉列表处于打开状态时才发出警报:

 $(document).ready(function() { $('#example').select2({ minimumResultsForSearch: 99 }); let isDropdownOpen = false; $('#example').on('select2:open', function(event) { isDropdownOpen = true; }); $('#example').on('select2:close', function(event) { isDropdownOpen = false; }); $(document).on('keydown', function(event) { if (isDropdownOpen) { event.preventDefault(); alert('Hello!'); } }); }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.7/css/select2.min.css" rel="stylesheet" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.7/js/select2.min.js"></script> <select id="example" name="example"> <option value="1234">1234</option> <option value="5678">5678</option> </select> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM