Der gebundene Eingabewert von Knockout.js wird nicht aktualisiert, wenn ich jquery .val ('xyz') verwende.


86

Ich habe eine Eingabe, die eine Knockout-Bindung an den Wert hat.

Wenn ich den Wert mit der .val () -Methode von jquery aktualisiere, wird der geänderte Wert nicht im viewModel wiedergegeben.

Ich muss jQuery verwenden, um diesen Wert festzulegen. Wie kann ich das Update für das viewModel auslösen?

Antworten:


142

.val()löst das Änderungsereignis nicht aus. Sie können es also einfach tun. val("blah").change()für KO, um die Änderungen zu übernehmen.


3
Was ist, wenn Sie keine Kontrolle darüber haben val()? Gibt es eine Möglichkeit für jQuery, val()Elemente anzuhören ?
Cherouvim

+1 Ich habe einige Stunden lang versucht herauszufinden, warum mein Ansichtsmodell nicht aktualisiert wurde, wenn ich einen Wert mit der Funktion getElementById ändere. Danke dir!
Samuel

1
Aber es ist ein besserer Ansatz, Knockout die gesamte Dom-Manipulation durchführen zu lassen, imho.
Tom

Stellen Sie sicher, dass Sie auch Ihre data-bindAussage überprüfen . Ich hatte diesen Fehler, bevor ich realisierte, dass es sein sollte data-bind="value:location"und NICHT data-bind="value:location()"
abbaf33f

Vielen Dank. Das macht den Job für mich.
DriLLFreAK100
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.