Как программно "открыть" поле "Материал-интерфейс"?

Поле выбора можно найти здесь: в демонстрации Material-UI

Эти методы кажутся унаследованными из классов menu/popover, но я не смог выяснить, как запускать "open", когда происходит событие onFocus. Это позволило бы решить мои проблемы с удобством использования клавиатуры! Большое спасибо.

Ответ 1

Вы можете сделать это, обратившись к DOM node кнопки со стрелкой вниз и вручную вызывая событие клика на нем.

Пример, который работает на Mac Chrome на демонстрационном веб-сайте через консоль после добавления поля id 'mySelect' в элемент DOM поля выбора для облегчения доступа:

// Initialize a click event (mouseup seem more cross browser)
var evt = document.createEvent('MouseEvents');
evt.initEvent('mouseup', true, false);
// The down arrow elment is the only SVG element un the select
var elm = document.querySelector('#mySelect svg')
// Dispatch the event (reusable)
elm.dispatchEvent(evt);

Если это решение соответствует вашему коду, вам нужно будет проверить полный способ перекрестного браузера/платформы, чтобы создать соответствующее событие, и выбрать элемент стрелки (querySelector недоступен повсюду, хотя теперь все нормально)