1

我有一个包含两个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
    }
}

谢谢!

4

1 回答 1

0

一个半黑客的解决方案是在select#two发生以下任何一个关键事件时模糊页面上的所有其他选择元素(例如在此示例中):$("select").blur(). 也许是最好/唯一的解决方案......

于 2012-05-17T14:14:32.650 回答