Knockout.js valor de entrada enlazado no actualizado cuando uso jquery .val ('xyz')

86

Tengo una entrada que tiene un enlace de nocaut al valor.

Cuando actualizo el valor usando el método .val () de jquery, el valor cambiado no se refleja en viewModel.

Necesito usar jQuery para establecer este valor. ¿Cómo puedo activar la actualización de viewModel?

nnpath
fuente

Respuestas:

142

.val()no activa el evento de cambio. Entonces, puedes hacerlo. val("blah").change()para que KO recoja los cambios.

RP Niemeyer
fuente
3
¿Qué pasa si no tienes control sobre eso val()? ¿Hay alguna forma de que jQuery escuche los val()elementos?
Cherouvim
+1 Intenté averiguar durante un par de horas por qué cuando cambio un valor con la función getElementById, mi modelo de vista no se actualizó. ¡Gracias!
Samuel
1
Pero dejar que el nocaut haga toda la manipulación del dom es un mejor enfoque, en mi humilde opinión.
Tom
Asegúrese de revisar su data-bindestado de cuenta también. Tuve este error antes de data-bind="value:location" data-bind="value:location()"
darme
Gracias. Esto hace el trabajo por mí.
DriLLFreAK100