所以我試圖獲得一些驗證,以便使用基因敲除驗證。我創造了這個小提琴來證明我的問題:https://jsfiddle.net/utjmLhxa/7/重新評估依賴字段上的錯誤消息,並進行基因敲除驗證
當我改變「數量」和我已經有「雙量」的錯誤信息,我想它更新的錯誤消息。驗證有效時它似乎消失,但如果它仍然無效,它不會更新。
是否有可能獲得基因敲除驗證來重新評估文本?如果是這樣,怎麼樣?它似乎做了一些重新評估,因爲錯誤消失時,該字段是有效的。
實施例:
- 在數量輸入2
- 在雙人量輸入2,示出了錯誤,它必須是至少4
- 在數量輸入3,對於雙數量錯誤消息仍然是在數量 相同
- 輸入1,用於雙人量錯誤信息消失
下面是代碼的jsfiddle:
<div id="vm">
<span>Quantity</span>
<input type="number" data-bind="value: quantity"/><br/>
<span>Double quantity</span>
<input type="text" data-bind="value: doubleQuantity"/>
</div>
ko.validation.registerExtenders();
var Vm = function(){
var self = this;
self.quantity = ko.observable().extend({ max: 5 });
self.doubleQuantity = ko.observable().extend({validation: {
validator: function (val) {
this.message = 'must be at least ' + self.quantity() * 2
return val >= 2 * self.quantity();
},
message: ''
} });
};
ko.applyBindings(new Vm(), document.getElementById('vm'));
使用https://knockoutjs.com/downloads/knockout-2.2.1.js和https://cdnjs.cloudflare.com/ajax/libs/knockout-validation/1.0.2/knockout.validation.min.js
你需要使用這些過時的庫? –
我認爲這將有助於:http://stackoverflow.com/questions/17582154/knockout-validation-message-based-set-in-the-validation-function –