Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.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 防止上/下箭头键更改聚焦选择的选择_Javascript_Jquery_Html - Fatal编程技术网

Javascript 防止上/下箭头键更改聚焦选择的选择

Javascript 防止上/下箭头键更改聚焦选择的选择,javascript,jquery,html,Javascript,Jquery,Html,我有一个包含两个select元素的文档。我希望上/下箭头键始终只更改其中一个选择,而不管焦点在哪里。即使用户只是点击了selecttwo,但它仍然有焦点,我希望向上/向下键可以更改selectone 下面是我必须控制selectone的代码。是否可以使selecttwo从不响应向上/向下箭头键事件 谢谢 一个半黑客式的解决方案是,当出现以下任何一个关键事件时,模糊页面上所有其他选择元素,例如本例中的selecttwo:$select.blur。也许是最好的/唯一的解决方案…你愿意接受jQuery

我有一个包含两个select元素的文档。我希望上/下箭头键始终只更改其中一个选择,而不管焦点在哪里。即使用户只是点击了selecttwo,但它仍然有焦点,我希望向上/向下键可以更改selectone

下面是我必须控制selectone的代码。是否可以使selecttwo从不响应向上/向下箭头键事件


谢谢

一个半黑客式的解决方案是,当出现以下任何一个关键事件时,模糊页面上所有其他选择元素,例如本例中的selecttwo:$select.blur。也许是最好的/唯一的解决方案…

你愿意接受jQuery解决方案吗?@ElliotBonneville从$'selectone'判断,我认为他已经在使用oneOh,woops,错过了。很好。你有没有考虑过使用带有样式的列表而不是选择标记?@Chango我想这会管用,但这将进入一个大型站点,该站点有一组定义的样式元素,我可以使用。
document.onKeyDown = function(e) {
    var evtobj = e.which ? e.which : window.event.keyCode;
    if (evtobj == 38) {
        e.preventDefault(); //do not scroll
        //change the selection
        select = $('select#one');
        select[0].selectedIndex = Math.max(0, select[0].selectedIndex - 1)
        select.change(); //fire change listeners
    } 
    if (evtobj == 40) {
        //ditto for up key
    }
}