1

select2 つの要素を持つドキュメントがあります。selectフォーカスがどこにあるかに関係なく、上/下矢印キーで常にこれらの s の 1 つだけを変更する必要があります。ユーザーがクリックしただけ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 に答える