1

テキスト入力値が変更された直後にknockout.jsがビューモデルを更新する方法は? 問題は、フィールドがフォーカスを失った場合にのみ更新がトリガーされることです。

knockout.js のドキュメントから:

ビューモデルをリアルタイムで更新したい場合は、「afterkeydown」が最適です。

これは役に立ちませんでした。私のシステムには、ユーザートークンと呼ばれるフィールドがあります。そのため、ユーザーはマウスを使用してトークンを貼り付けることがよくあります。

では、knockout.js を作成する方法は、テキスト フィールドのテキストが変更されるたびにモデルを即座に更新します。

4

2 に答える 2

1

質問でほのめかしたように、これはvalueUpdatebindingによって制御されます。

input「最新のブラウザー」のみをサポートする必要がある場合は、これの推奨値です。「非モダン ブラウザ」とは、基本的に IE8 以前を意味します。ドキュメントから:

[すべてのvalueUpdate] オプションのうちinput、ビュー モデルをリアルタイムで最新の状態に維持したい場合、および IE 9+ などの最新のブラウザーのみをサポートする必要がある場合に最適な選択です (一方、"afterkeydown" は古いブラウザーに適しています)。ブラウザー)。例えば:

<p>Your value: <input data-bind="value: someValue, valueUpdate: 'input'" /></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>
于 2014-06-09T12:40:44.443 に答える
0

少なくとも、トークンを正しく貼り付けるために集中する必要がありますか? そのため、フォーカス イベント ハンドラーをバックアップとして実行することもできます。

または、常に onchange だけがあります。

個人的には自分で onchange を使用したことがないため、knockout.js での onchange の使用に関する SO 投稿を次に示します。 KnockoutJS - OnBlur オプションの代わりにテキスト ボックス値の ViewModel OnChange を更新する

于 2012-10-12T23:53:09.627 に答える