jquery .val( 'xyz')を使用すると、Knockout.jsのバインドされた入力値が更新されません


86

値にノックアウトバインディングを持つ入力があります。

jqueryの.val()メソッドを使用して値を更新すると、変更された値がviewModelに反映されません。

この値を設定するには、jQueryを使用する必要があります。viewModelの更新をトリガーするにはどうすればよいですか?

回答:


142

.val()変更イベントはトリガーされません。だから、あなたはただすることができます。val("blah").change()KOが変更を取得するため。


3
あなたがそれを制御できない場合はどうなりますval()か?jQueryがval()要素をリッスンする方法はありますか?
cherouvim 2013

+1 getElementById関数を使用して値を変更したときに、ビューモデルが更新されなかった理由を数時間理解しようとしました。ありがとうございました!
サミュエル

1
しかし、実際にノックアウトにすべてのdom操作を実行させることは、より良いアプローチです、imho。
トム

あなたのdata-bind声明もチェックしてください。私はそれがあるべき実現する前に私はこのバグを持っていたdata-bind="value:location"しない data-bind="value:location()"
JMB-MAGE

ありがとう。これは私のために仕事をします。
DriLLFreAK1 0019
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.