2014-07-09 1 views
6

Ich habe ein Textfeldfeld, dessen Wert-Eigenschaft an eine Eigenschaft in meinem ViewModel gebunden ist.Kendo UI: Erzwinge Update von ViewModel auf KeyPress in TextBox

Das Problem ist, dass das ViewModel standardmäßig auf dem "geändert" -Ereignis des Textfelds aktualisiert wird (wenn das Textfeld seinen Fokus verliert).

Ich möchte das ViewModel aktualisiert werden, wenn das keypress-Ereignis ausgeführt wird.

Ich möchte nicht das Ereignis "changed" in jedem Tastendruck erzwingen, da es eine gewisse Logik in diesem Event-Handler gibt und nicht für jeden Tastendruck ausgeführt werden muss.

Gibt es eine Möglichkeit, Kendo mitzuteilen, das ViewModel zu aktualisieren, ohne das Ereignis "changed" auszulösen?

Ich weiß, ich kann das ViewModel nur manuell ändern, aber ich wollte etwas einfacher und automatisiert.

Vielen Dank für Ihre Antworten,

  • Wird

Antwort

10

Verwenden Sie die Datenwert-Update attri bute. Wenn Sie das Ereignis "keypress" verwenden, wird das letzte Zeichen des gebundenen Modells nicht aktualisiert. Verwenden Sie stattdessen das Ereignis "keyup".

<input id="name" type="text" 
    data-bind="value: name" data-value-update="keyup"> 

Getestet hat ich zunächst "keypress", aber die Eingabe von Text "ABCD" Ergebnisse in "abc" in dem Ansichtsmodell verwenden.

+0

Machen Sie es sich eine Antwort, die allein stehen konnte, auch wenn CodingWithSpike Antwort gelöscht werden würde, wie es es ist ein Kommentar auf eine Antwort steht, nicht eine Antwort. – bummi

+0

Danke, bummi. Ich habe das Format meiner Antwort stattdessen auf eine Antwort geändert. – cheino

+2

funktioniert leider nicht auf ihren Widgets (maskedtextbox, numicictextbox) – xinthose

0
<input type="text" data-value-update="keypress" data-bind="value: searchBySystemValue, events: { keypress: onkeypressEvent }"/> 

U kann Funktion in Veranstaltungen hinzufügen