关于延迟的淘汰验证

时间:2012-09-25 15:56:17

标签: validation knockout.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 });

这在tab上运行正常。但我需要在一些延迟时调用此验证(当用户停止输入时)。

任何人都可以告诉我如何在延迟时调用此验证?

1 个答案:

答案 0 :(得分:8)

要确保在用户输入时更新了viewmodel,请使用valueUpdate binding

<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
});

此情况下的节流在最后一次注册的输入事件后等待1000 ms以执行验证。