Nilai input terikat Knockout.js tidak diperbarui ketika saya menggunakan jquery .val ('xyz')

86

Saya memiliki masukan yang memiliki sistem gugur yang mengikat nilai.

Ketika saya memperbarui nilai menggunakan metode .val () jquery, nilai yang diubah tidak tercermin dalam viewModel.

Saya perlu menggunakan jQuery untuk mengatur nilai ini. Bagaimana cara memicu pembaruan ke viewModel?

nnpath
sumber

Jawaban:

143

.val()tidak memicu peristiwa perubahan. Jadi, Anda bisa melakukannya. val("blah").change()untuk KO untuk mengambil perubahan.

RP Niemeyer
sumber
3
Bagaimana jika Anda tidak memiliki kendali atas hal itu val()? Apakah ada cara bagi jQuery untuk mendengarkan val()elemen?
cherouvim
+1 Saya mencoba mencari tahu selama beberapa jam mengapa ketika saya mengubah nilai dengan fungsi getElementById viewmodel saya tidak diperbarui. Terima kasih!
Samuel
1
Tapi benar-benar membiarkan knockout melakukan semua manipulasi dom adalah pendekatan yang lebih baik, imho.
Tom
Pastikan Anda memeriksa data-bindpernyataan Anda juga. Saya memiliki bug ini sebelum saya menyadarinya data-bind="value:location"dan BUKAN data-bind="value:location()"
abbaf33f
Terima kasih. Ini melakukan pekerjaan untuk saya.
DriLLFreAK100