2013-08-20 142 views
1

我在我的HTML select元素:如何通過鍵盤激活select元素的下拉菜單?

<select id="dropdown"> 
    <option value="1">First</option> 
    <option value="2">Second</option> 
</select> 

它呈現爲一個下拉菜單,當用戶單擊此,(!驚喜)落下。 爲了僅通過鍵盤使用頁面,我希望這樣做的目的是當用戶按下某個鍵時菜單下降。

$('body').keypress(function(event) { 
    var key = String.fromCharCode(event.which); 
    if (key == 'a') { 
     $('#dropdown').doSomething(); // ? 
    } 
}); 

我發現的最好的方法是調用focus()。它允許通過鍵盤選擇值,但不會下拉菜單。有沒有辦法讓菜單下降?

+0

不當然,如果這是可能的:http://stackoverflow.com/questions/360431/can-i-open-a-dropdownlist-using-jquery - 總是有其他線程嘗試,但它似乎總是空虛。 – tymeJV

+1

AFAIK不可能。選擇需要直接的用戶交互。儘管你可以使用標準元素來僞造你的選擇框 –

+2

可能的重複[你如何以編程方式告訴HTML SELECT下拉(例如,由於鼠標懸停)?](http://stackoverflow.com/questions/249192/how -can-you-programmatically-tell-an-html-select-to-drop-down-for-example-due)和http://stackoverflow.com/questions/430237/is-it-possible-to-use- js-to-open-an-html-select-to-show-its-option-list – j08691

回答

2

使用Chrome瀏覽器(28.0),你可以強制這樣的鼠標事件:

var e = document.createEvent("MouseEvents"); 
e.initMouseEvent("mousedown", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); 
$("#dropdown").get(0).dispatchEvent(e); 

See this working demo不要忘記點擊體壓接前「a」到焦點賦予它

相關問題