2016-02-23 11 views
11

polu Wybierz można znaleźć tutaj: in the Material-UI demoW jaki sposób programowo otwiera się pole Wybierz materiał-UI?

metody To wydaje się być dziedziczone z klas menu/popover ale nie byłem w stanie dowiedzieć się, jak ognia „otwarty”, gdy Zdarzenie onFocus np. To rozwiązałoby problemy związane z użytecznością klawiatury! Wielkie dzięki.

+1

Patrząc na połączony dokument, nie ma tam nic do automatycznego ustaw ostrość lub otwórz listę wyboru. W rzeczywistości został zgłoszony jako problem na GitHub więcej niż jeden raz. https://github.com/callemall/material-ui/issues?utf8=%E2%9C%93&q=selectfield+focus+is%3Aopen –

+0

Dziękuję David. W rzeczywistości istnieje wiele otwartych kwestii. Miałem nadzieję, że istnieje jakiś triksowy sposób naśladowania zdarzenia kliknięcia, gdy zdarzy się on w trybie onocus. Jeśli mysz może je otworzyć, dlaczego nie mogę zrobić tego syntetycznie? Moje próby się nie powiodły ... – heorling

+0

Domyślam się, że będziesz musiał poczekać i zobaczyć, czy to zachowanie kończy się w Wybierz pola w gałęzi @next. Cytuj ze swojej ROADMAP.md: "Nowe funkcje oparte na v0.16.x mają niski priorytet i najprawdopodobniej nie zostaną sprawdzone ani scalone" – Dani

Odpowiedz

1

Można to zrobić, uzyskując dostęp do węzła DOM przycisku strzałki w dół i ręcznie uruchamiając zdarzenie kliknięcia.

Przykład, który działa na Mac Chrome na stronie demo, za pośrednictwem konsoli, po dodaniu pola id a „mySelect” do select elementu DOM pola dla łatwiejszego dostępu:

// 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); 

Jeśli to rozwiązanie wpisuje swój kod , musisz sprawdzić pełny krzyżowy przeglądarka/platforma, aby utworzyć odpowiednie wydarzenie, i wybrać element strzałki (querySelector nie jest dostępny wszędzie, chociaż it's quite OK now)

Powiązane problemy