Edit in JSFiddle

var viewModel = {
  field1: ko.observable(), //value
  field2: ko.observable(), //value, valueUpdate
  field3: ko.observable(), //textInput
  field4: ko.observable().extend({
      throttle: 200
    }) //textInput + throttle
};

ko.applyBindings(viewModel, document.body);
В ниже представленных полях используются разные виды обновления значений поля при пользовательском вводе.
<p>При потере фокуса:
  <input type="text" data-bind="value: field1"> Текущее значение:
  <strong data-bind="text: field1"></strong>
</p>
<p>После нажатия клавиши:
  <input type="text" data-bind="value: field2, valueUpdate: 'afterkeydown'"> Текущее значение:
  <strong data-bind="text: field2"></strong>
</p>
<p>После нажатия клавиши с использованием textInput:
  <input type="text" data-bind="textInput: field3"> Текущее значение:
  <strong data-bind="text: field3"></strong>
</p>
<p>После нажатия клавиши с использованием textInput и задержкой в 200 миллисекунд:
  <input type="text" data-bind="textInput: field4"> Текущее значение:
  <strong data-bind="text: field4"></strong>
</p>