O valor de entrada associado de Knockout.js não é atualizado quando eu uso jquery .val ('xyz')


86

Eu tenho uma entrada que possui uma ligação de nocaute ao valor.

Quando eu atualizo o valor usando o método .val () de jquery, o valor alterado não é refletido no viewModel.

Preciso usar o jQuery para definir esse valor. Como posso acionar a atualização do viewModel?

Respostas:


142

.val()não aciona o evento de mudança. Então, você pode simplesmente fazer. val("blah").change()para KO pegar as mudanças.


3
E se você não tiver controle sobre isso val()? Existe uma maneira de jQuery ouvir val()em elementos?
Cherouvim

1 Tentei descobrir por algumas horas porque quando eu altero um valor com a função getElementById meu viewmodel não foi atualizado. Obrigado!
Samuel

1
Mas realmente deixar o nocaute fazer toda a manipulação do dom é uma abordagem melhor, imho.
Tom

Certifique-se de verificar sua data-binddeclaração também. Eu tive esse bug antes de perceber que deveria ser data-bind="value:location"e NÃO data-bind="value:location()"
jmb-mage

Obrigado. Isso faz o trabalho para mim.
DriLLFreAK100,
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.