1

ノックアウトは通常、コントロールがフォーカスを失ったときにのみテキスト ボックスのバインドを更新することを理解しています。keydown複数のテキスト ボックスに関連付けられたイベントがあり、モデルが現在フォーカスされているテキスト ボックスの値を更新していません。keydownイベント中にテキストボックスの値でモデルを強制的に更新するにはどうすればよいですか?

$('.mySelector').on('keydown', function(event) {
  if (event.which == 13) { // enter was pressed
     event.preventDefault();
     $.ajax({
       type: 'POST',
       url: 'pathToCall',
       // model.Query still has the old text from before the keydown event since the
       // text box has not lost focus yet
       data: "{parameterName: " + JSON.stringify(ko.mapping.toJS(model.Query)) + "}",
       function (data) {
         model.SearchResults(data.d);
       },
       function ()  { alert('error'); }
     });
});
4

3 に答える 3

1

valueUpdate バインディングを試しましたか? 詳細は@ http://knockoutjs.com/documentation/value-binding.htmlで見つけることができます

于 2013-10-04T19:14:52.543 に答える
1

valueUpdateオプションを使用して、次のように設定する必要がありafterkeydownます。

<input data-bind="value: someValue, valueUpdate: 'afterkeydown'" />

ドキュメントの「追加パラメーター」セクションを参照してください。

于 2013-10-04T19:15:00.350 に答える