KnockoutJS - Обновление ViewModel OnChange значения текстового поля вместо параметров OnBlur

Я новичок в KnockoutJS, и мне нравится то, что я видел до сих пор. В настоящее время, когда наблюдаемое свойство View Model привязано к текстовое свойство текстового поля (тип ввода = текст), ViewModel обновляется только в случае размытия текстового поля. Есть ли способ обновить модель просмотра в событии изменения текстового поля? Я пытался создание настраиваемого обработчика привязки при подключении события изменения обработчик в текстовом поле в "init", но это как-то не сработало. Является это правильно для достижения этой цели? Или есть более простой способ?

Ответы

Ответ 1

Вы также можете использовать привязку "значение" и добавить атрибут привязки valueUpdate, чтобы указать, когда обновлять свой контроль:

Смотрите здесь: http://knockoutjs.com/documentation/value-binding.html

<p>Your value: <input data-bind="value: someValue, valueUpdate: 'afterkeydown'" /></p>
<p>You have typed: <span data-bind="text: someValue"></span></p> <!-- updates in real-time     -->

<script type="text/javascript">
var viewModel = {
    someValue: ko.observable("edit me")
};
</script>

Ответ 2

Выше не работает, пока скопируйте палочку с мыши, поэтому вам нужно передать события в valueUpdate. как..

<p>Your value: <input data-bind="value: someValue, valueUpdate:['afterkeydown','propertychange','input']" /></p>

Попробуйте здесь http://jsfiddle.net/uJCQq/4/