2014-03-12 44 views

回答

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

+0

謝謝!這一行的具體目的是什麼_this.errors = ko.validation.group(this); _和這個綁定_validationMessage_? –

+0

ko.validation.group給視圖模型的所有錯誤消息提供一個(計算的)可觀察值。 – Akhlesh

+0

所以這實際上是相同的_ko.validatedObservable(vM)_? –