![](/img/trans.png)
[英]html5 form drop down menu, with menu items in javascript or 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.