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