验证提交而不是焦点丢失

时间:2014-03-12 12:04:28

标签: knockout.js knockout-validation

我正在使用knockout validation plug-in。目前,当一个领域失去焦点时,它会触发验证。有什么办法可以控制验证何时结束?具体来说,我希望在表单提交事件上触发验证,并且不希望它在焦点丢失时。

1 个答案:

答案 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>

Fiddle Demo