2

私はjsをノックアウトするのは初めてです。ユーザーがテキストボックスに入力する日付のバリデーターが必要です。このために次のようなコードを書きました

ko.validation.rules['date'] = {
    validator: function (value, validate) {
      //Custom logic
    },
    message: 'Please type proper date'
};

self.userDate = ko.observable(new Date()).extend({date: true });

これはタブアウトで正常に機能しています。しかし、私はこの検証を少し遅れて呼び出す必要があります(ユーザーが入力を停止したとき)。

誰かが私にこの検証を遅延で呼び出す方法を教えてもらえますか?

4

1 に答える 1

8

ユーザーが入力しているときにビューモデルが更新されるようにするには、valueUpdate バインディングを使用します。

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

次に、オブザーバブルを抑制します。

self.userDate = ko.observable(new Date()).extend({
    throttle: 1000, //<- time in ms to wait before validation
    date: true
});

この場合のスロットルは、最後に登録された入力イベントから1000ミリ秒後に検証を実行するために待機します。

于 2012-09-25T16:01:49.147 に答える