我是淘汰赛的新手。我需要有一个验证器,用于日期,用户将在文本框中输入。为此编写了像
这样的代码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上运行正常。但我需要在一些延迟时调用此验证(当用户停止输入时)。
任何人都可以告诉我如何在延迟时调用此验证?
答案 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以执行验证。