すべてのテキスト入力でこの設定を繰り返す代わりに?
明確にするために、私はこれについて話している:
<input type="text" name="email"data-bind="value: email, valueUpdate:'afterkeydown'" />
私の入力の 90% では、これ'change'
が現在のデフォルトです。
すべてのテキスト入力でこの設定を繰り返す代わりに?
明確にするために、私はこれについて話している:
<input type="text" name="email"data-bind="value: email, valueUpdate:'afterkeydown'" />
私の入力の 90% では、これ'change'
が現在のデフォルトです。
既存の値 bindingHandler を置き換えて、afterkeydown バインディングを追加できます。
優れたソリューションを参照してくださいどうすれば Knockout JS を取得して、フォーカスを失う代わりにキーを押したときにデータバインドできますか?
すべてのテキスト入力のデフォルト機能を直接設定することはできません。代わりにできることは、テンプレート入力を作成することであり、それらはすべて、たとえばそれらのテンプレートにすることができます
<!-- ko template:{name:'input-template', data: email}--><!--/ko-->
コンテナレス表記を使用することで、余分な html 要素の作成を回避できます
次に、必要なものを使用してテンプレートを定義します。
<script type="text/html" id="input-template">
<input type="text" name="$data" data-bind="value: $data, valueUpdate:'afterkeydown'"/>
</script>
Knockout には valueUpdate のデフォルトの動作を変更するオプションがないため、Knockout ライブラリ ソースを変更して希望どおりに動作させるしかありません。ライブラリが更新された場合は、この変更を再度行う必要があります。または、Knockout の開発者に、デフォルトの valueUpdate イベントを変更できる構成オプションを追加するよう依頼することもできます。
クラスでターゲット入力を「マーク」できる場合は、これを試すことができます:
$('.yourClass').attr('data-bind', "value: email, valueUpdate:'afterkeydown'");
役立つことを願っています