2013-08-20 2 views
1

У меня есть выберите элемент в моем HTML:Как активировать выпадающее меню элемента 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-programatically-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 не забудьте нажать на тело перед нажатием «а», чтобы дать на него фокус

Смежные вопросы