2012-04-15 9 views
9

[patrz fiddle dla ilustracji]valueUpdate: „afterkeydown” dla typu wejściowy „numerycznych” w Knockoutjs 2,0

skonfigurować do wartości wiązania do input liczby typów, a chce się związane observable natychmiast odzwierciedlenia zmian do wartości pola. w tym celu ustawiam powiązanie valueUpdate na afterkeydown. Działa to dobrze w przypadku zmiany wprowadzania liczb za pomocą klawiszy strzałek w górę i strzałek w dół. Jeśli jednak zmienię numer za pomocą wygenerowanej przez przeglądarkę (testowane w chrome) kontroli przyrostu/dekrementacji, zmiana jest odzwierciedlana tylko po zmianie fokusu na inny element. Zakładam, że odzwierciedla to domyślną aktualizację po zdarzeniu zmiany.

Moje pytanie brzmi, czy istnieje jakiś sposób ustawienia aktualizacji dla obu zmian za pomocą klawiszy klawiatury w górę i kontroli błędów generowanych przez przeglądarkę?

Odpowiedz

18

Dodatkowe powiązanie może zająć szereg zdarzeń. Wygląda na to, że zdarzenie oninput zostało wywołane po kliknięciu strzałki w górę/w dół.

Tak, można powiązać to lubią:

<input type="number" data-bind="value: y, valueUpdate: ['afterkeydown', 'input']"/>

http://jsfiddle.net/rniemeyer/hY5T2/9/

+0

Doskonałe, to działa jak czar. Dzięki! – odedbd

+0

Używając tego w moim module DotNetNuke MVVM otrzymuję maleńkie (!) Przyciski spinner-up i spinner-down. Są tak małe, że prawie niemożliwe jest ich użycie. Rozumiem, że to sprawa CSS, ale nie udało mi się tego rozgryźć. Jeśli zamiast idę z wszystko wygląda ładnie, ale valueUpdate nie działa ... Rzeczy, które sprawiają, że hmm ... –

+0

Miałem problem ze skryptami testowymi Selenium, które nie aktualizowały obserwowalnych i to rozwiązało to dla mnie. – AaronLS

Powiązane problemy