淘汰验证限制
Knockout validation throttle
嗨,我在输入类型上有一个 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);
'