2016-02-23 5 views
11

поле выбора можно найти здесь: in the Material-UI demoКак программно «открыть» поле «Материал-интерфейс»?

методы Это, по всей видимости наследуются от классов меню/поповера, но я не мог понять, как огнь «открытыми», когда пожары OnFocus события, например. Это позволило бы решить мои проблемы с удобством использования клавиатуры! Большое спасибо.

+1

Посмотрев на связанный документ, там нет ничего автоматического сфокусироваться или открыть список выбора. На самом деле он неоднократно поднимался как проблема на GitHub. https://github.com/callemall/material-ui/issues?utf8=%E2%9C%93&q=selectfield+focus+is%3Aopen –

+0

Спасибо, Дэвид. На самом деле есть много открытых проблем. Я надеялся, что есть какой-то триксичный способ эмулировать событие click, когда происходит onDocus. Если мышь может открыть его, почему я не могу сделать это синтетически? Мои попытки потерпели неудачу ... – heorling

+0

Я предполагаю, что вам придется подождать и посмотреть, попадает ли это поведение в поля «Выбрать» ветки @next. Цитата из их ROADMAP.md: «Новые функции, основанные на v0.16.x, имеют низкий приоритет и, скорее всего, не будут рассмотрены и не объединены» – Dani

ответ

1

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

Пример, который работает на Mac Chrome на демо-сайте, с помощью консоли, после добавления поля Идентификатор «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 недоступен повсюду, хотя it's quite OK now)

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