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'" />

然后你限制 observable:

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

在这种情况下,Throttle 在最后一次注册的输入事件之后等待 1000 毫秒以执行验证。

于 2012-09-25T16:01:49.147 回答