Valore di input associato Knockout.js non aggiornato quando utilizzo jquery .val ('xyz')


86

Ho un input che ha un knockout vincolante al valore.

Quando aggiorno il valore utilizzando il metodo .val () di jquery, il valore modificato non si riflette nel viewModel.

Devo usare jQuery per impostare questo valore. Come posso attivare l'aggiornamento a viewModel?

Risposte:


142

.val()non attiva l'evento di modifica. Quindi, puoi e basta. val("blah").change()per KO per raccogliere le modifiche.


3
E se non hai il controllo su questo val()? C'è un modo per jQuery di ascoltare val()sugli elementi?
cherouvim

+1 Ho provato a capire per un paio d'ore perché quando cambio un valore con la funzione getElementById il mio viewmodel non è stato aggiornato. Grazie!
Samuel

1
Ma lasciare che il knockout si occupi di tutta la manipolazione del dominio è un approccio migliore, imho.
Tom

Assicurati di controllare anche la tua data-binddichiarazione. Ho avuto questo bug prima di rendermi conto che dovrebbe essere data-bind="value:location"e NON data-bind="value:location()"
jmb-mage

Grazie. Questo fa il lavoro per me.
DriLLFreAK100
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.