淘汰验证限制

Knockout validation throttle

本文关键字:验证 淘汰      更新时间:2023-09-26

嗨,我在输入类型上有一个 css 绑定,如果它与我的函数匹配,它会添加类 CircleErrors。我的问题是它在取消课程时有延迟,它只会在我关闭输入框时发生。我希望在键盘向下键时删除该类。我知道有一个油门可以用来淘汰赛,但我不确定如何去做。

<input id="firstName" type="text" placeholder="First name" data-bind="value: Registration.FirstName, css: { CircleErrors: Registration.FirstName().length == 0 && Registration.FirstNameValidation(), valueUpdate: 'afterkeydown' }">

您放错了 valueUpdate 参数的位置。 它位于css参数内 - 您需要将其移动到}之外:

<input id="firstName" type="text" placeholder="First name" data-bind="value: Registration.FirstName, css: { CircleErrors: Registration.FirstName().length == 0 && Registration.FirstNameValidation() }, valueUpdate: 'afterkeydown'">

这是一个可以工作的演示

对名字属性(以及与此相关的任何文本输入字段)使用 textInput 绑定而不是值绑定。引用文档

与值绑定不同,textInput 提供来自 用于所有类型的用户输入的 DOM,包括自动完成, 拖放和剪贴板事件。

您不再需要 valueUpdate 绑定,但它位于 CSS 绑定中,因此不会产生任何影响。

<input id="firstName" type="text" placeholder="First name" data-bind="textInput: Registration.FirstName, css: { CircleErrors: Registration.FirstName().length == 0 && Registration.FirstNameValidation() }">

演示

这就是你要找的' var reg = new (function() { var self = this; 这。名字 = ko.observable(''); this.checkifEmpty = ko.observable(false);

this.check=function(){
    if(this.FirstName()!=null&&this.FirstName()!=undefined &&     this.FirstName() !=''){
     this.checkifEmpty(true);
    }else{
             this.checkifEmpty(false);
    }
}
this.FirstNameValidation = function() {
    return true;
}

})();

ko.applyBindings(reg);

'