Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Html下拉列表:如何处理select选项元素的关键事件_Javascript_Jquery_Html - Fatal编程技术网

Javascript Html下拉列表:如何处理select选项元素的关键事件

Javascript Html下拉列表:如何处理select选项元素的关键事件,javascript,jquery,html,Javascript,Jquery,Html,我尝试了下面的代码来创建html中的下拉菜单 <select onkeydown="func()"> <option>a</option> <option>b</option> <option>c</option> <option>d</option> </select> A. B C D 当您单击下拉菜单时,列表将打开: 选项包括: A. B C D 我正在尝试的是按下

我尝试了下面的代码来创建html中的下拉菜单

<select onkeydown="func()">
<option>a</option>
<option>b</option>
<option>c</option>
<option>d</option>
</select>

A.
B
C
D
当您单击下拉菜单时,列表将打开: 选项包括: A. B C D 我正在尝试的是按下backspace键,下拉列表应该关闭,焦点必须设置为dropdown,但当焦点位于下拉列表项上时,我无法触发事件。 如果你能帮助我,我将不胜感激。
谢谢。

我发布了一个完整的示例, 它解决了以下问题

  • 当下拉菜单打开且用户按BACKSPACE键时,它会重置该值(可以任意设置)
  • 将焦点返回到下拉框

下拉菜单中的退格

当下拉列表打开且用户单击Backspace时,它将返回到所选值

波士顿 得克萨斯州 伦敦 博尔顿 $(文档).ready(函数(){//FF需要按键,即需要按键) $('select')。按键(函数(事件) {返回取消退格(事件)}); $('select').keydown(函数(事件) {返回取消退格(事件)}); }); // 准备好的 函数取消退格(事件){ 如果(event.keyCode==8){ var元素=document.getElementById('mySelectDropDown'); element.value='London'; $(“#mySelectDropDown”).toggle(); $(“#mySelectDropDown”).focus; 返回false; } }
检查解决方案!,并根据您的要求进行修改,如果您需要……:)@mateen您可以使用element.selectedIndex=0;我检查了你的代码,但仍然没有解决我的目的,在上面的代码中,退格仅在下拉列表关闭时起作用,但我希望在下拉列表列出/打开时退格起作用。它的工作伙伴,有和没有打开下拉列表。。。jquery在你这边工作吗?jquery在我这边工作,但它仍然不工作,我尝试的是:我点击下拉列表,列表打开时显示“Boston Texas London Bolton”,现在使用键盘向下键我导航到“London”,现在焦点在伦敦,我仍然没有关闭下拉列表,请注意,现在我按backspace键,下拉列表本应关闭,但未发生,请提供帮助
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Backspacing in a dropdown</title>
    <script type="text/javascript" 
       src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
    <form>
        <p>
            When Drop Down is open and user has clicked Backspace, it goes back to selected value <br />
        </p>
    <select id="mySelectDropDown">
        <option>Boston</option>
        <option selected="true">Texas</option>
        <option>London</option>
        <option>Bolton</option>
    </select>
    </form>

    <script type="text/javascript">
        $(document).ready(function() { // FF needs keypress, IE needs keydown
            $('select').keypress(function(event) 
               { return cancelBackspace(event) });
            $('select').keydown(function(event) 
               { return cancelBackspace(event) });
        }); // ready

        function cancelBackspace(event) {
            if (event.keyCode == 8) {
                var element = document.getElementById('mySelectDropDown');
                element.value = 'London';
                 $('#mySelectDropDown').toggle();
                 $('#mySelectDropDown').focus;
                return false;
            }
        }
    </script>

</body>
</html>