Значення введеного значення Knockout.js не оновлюється, коли я використовую jquery .val ('xyz')


86

У мене є вхід, який має нокаут-прив'язку до значення.

Коли я оновлюю значення за допомогою методу .val () jquery, змінене значення не відображається у viewModel.

Мені потрібно використовувати jQuery, щоб встановити це значення. Як я можу запустити оновлення для viewModel?

Відповіді:


142

.val()не ініціює подію зміни. Отже, ви можете просто зробити. val("blah").change()для KO, щоб взяти зміни.


3
Що робити, якщо у вас немає контролю над цим val()? Чи є спосіб для jQuery слухати val()елементи?
cherouvim

+1 Я намагався протягом кількох годин з’ясувати, чому при зміні значення за допомогою функції getElementById мій viewmodel не був оновлений. Дякую!
Самуель

1
Але насправді дозволяти нокаутуванню всіх маніпуляцій з домом - кращий підхід, імхо.
Том

Переконайтеся, що ви також перевірили свою data-bindзаяву. У мене була ця помилка до того, як я зрозумів, що це має бути, data-bind="value:location"а НЕ data-bind="value:location()"
jmb-mage

Дякую. Це робить роботу для мене.
DriLLFreAK100
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.