我正在使用knockout validation plug-in。目前,当一个领域失去焦点时,它会触发验证。有什么办法可以控制验证何时结束?具体来说,我希望在表单提交事件上触发验证,并且不希望它在焦点丢失时。
答案 0 :(得分:1)
我认为目前没有办法停止模糊验证,但我们可以在ValidationMessage绑定的帮助下做一些解决方法。你可以改变配置" insertMessages"如果为false,则默认验证消息不会出现,然后使用ValidationMessage显示消息并使用另一个标记,该标记在提交时将为true。
示例代码: -
ko.validation.configure({
insertMessages: false
});
var vM = function () {
this.isSubmit = ko.observable(false);
this.Name = ko.observable().extend({
required: true,
number: true
});
this.errors = ko.validation.group(this);
};
vM.prototype.save = function () {
this.isSubmit(true);
if (!this.isValid()) {
this.errors.showAllMessages();
} else {
alert("success");
}
};
vM.prototype.set=function(){
this.isSubmit(false);
};
ko.applyBindings(new vM());
查看: -
Name:<input type="text" data-bind="value: Name,event: { keyup: set}" />
<span data-bind="if: isSubmit">
<p data-bind="validationMessage: Name"></p>
</span>