Wpadłem też na ten problem.
Pole kombi zawsze przywraca wcześniej wybraną wartość.
To nie jest tak dużo przywrócenie wartość jako użytkownik ponownego wybierania to po on usuwa wartość. To znaczy: z forceSelection: true
combobox nalega na zrzucenie menu, co oznacza, że gdy użytkownik wraca do combobox, aby usunąć element, menu combobox spada z elementem, który został pierwotnie zaznaczony, użytkownik następnie usuwa wartość w combobox i tabulatory do następnego, combobox sprawdza, który element jest podświetlony na rozwijanej liście i wypełnia go do pola, voila, ponownie zaznaczone.
Zamiast tego, gdy użytkownik usunie wartość, a następnie naciska klawisz ESC, aby zamknąć kombi rozwijanego menu i następnie zaczepy do następnego wartość nie wypełni się w.
przypuszczam to jest funkcja umożliwiająca sterowanie wyłącznie za pomocą klawiatury, dzięki czemu nie trzeba klikać, aby rozwinąć menu.
Na szczęście szybko zrozumiałem i używam klawisza ESC. Dodałem także konfigurację preventMark: true
, aby obsłużyć komunikat o błędzie, kiedy to wystąpiło.
Przypuszczam, że jeśli naprawdę nie możesz tego zrobić, możesz dodać detektor do zdarzenia change
lub nawet validitychange
, które sprawdza, czy pole jest teraz puste, a następnie zwija menu, jeśli jest. Powinno to uniemożliwić jej ponowne wybieranie podczas przechodzenia do innego pola w ten sam sposób, co zamykanie go klawiszem ESC.
Niezły! To najbardziej eleganckie rozwiązanie, które do tej pory osiągnąłem –
Możesz także użyć parametrów zdarzenia - 'addListener ('change', function (me, newVal) {if (newVal === null) {me.reset();} }); ' – phatskat
Uwaga: jeśli twój ComboBox ma' multiSelect: true', nie rób 'newValue === null', zamiast tego' newValue.length === 0' (ponieważ będzie to oczywiście tablica selekcji) . –