Giá trị đầu vào liên kết Knockout.js không được cập nhật khi tôi sử dụng jquery .val ('xyz')


86

Tôi có một đầu vào có ràng buộc loại trực tiếp với giá trị.

Khi tôi cập nhật giá trị bằng phương thức .val () của jquery, giá trị đã thay đổi không được phản ánh trong viewModel.

Tôi cần sử dụng jQuery để đặt giá trị này. Làm cách nào để kích hoạt bản cập nhật cho viewModel?

Câu trả lời:


142

.val()không kích hoạt sự kiện thay đổi. Vì vậy, bạn chỉ có thể làm. val("blah").change()để KO nhận các thay đổi.


3
Điều gì xảy ra nếu bạn không kiểm soát được điều đó val()? Có cách nào để jQuery lắng nghe val()các phần tử không?
cherouvim

+1 Tôi đã cố gắng tìm hiểu trong vài giờ tại sao khi tôi thay đổi giá trị bằng hàm getElementById, mô hình xem của tôi không được cập nhật. Cảm ơn bạn!
Samuel

1
Nhưng thực sự để knockout thực hiện tất cả các thao tác dom là một cách tiếp cận tốt hơn, imho.
Tom

Hãy chắc chắn rằng bạn cũng kiểm tra bản sao kê của bạn data-bind. Tôi có lỗi này trước khi tôi nhận ra nó phải được data-bind="value:location"KHÔNG data-bind="value:location()"
JMB-mage

Cảm ơn. Điều này thực hiện công việc cho tôi.
DriLLFreAK100
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.