防止上/下箭头键改变焦点选择的选择

时间:2012-05-17 02:40:41

标签: javascript jquery html

我有一个包含两个select元素的文档。我希望上/下箭头键始终只更改其中一个select,无论焦点在哪里。即使用户刚刚点击select#two并且仍然有焦点,我也希望上/下键更改select#one

以下是我必须控制的代码select#one是否可以让select#two永远不会回复上/下箭头键事件?

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
    }
}

谢谢!

1 个答案:

答案 0 :(得分:0)

一个半黑客的解决方案是,当这些关键事件发生时,模糊页面上的所有其他选择元素(例如本例中的select#two):$("select").blur()。也许是最好/唯一的解决方案......