我有一組需要驗證的項目作爲一個整體。我在該組上設置了validatedObservable
,但不顯示錯誤消息。基因敲除驗證validatedObservable組錯誤
我在這裏有一個簡化的例子。我希望每個數字都在0-100之間,並且總和恰好爲100.我該如何處理這種驗證?
更新:我知道在這個例子中,我可以做一個ko.computed
並驗證,但那不是我所需要的。
例子:http://jsfiddle.net/CGuW2/5/
0-100:<input data-bind="value: num1, valueUpdate: 'afterkeydown'"/><br>
0-100:<input data-bind="value: num2, valueUpdate: 'afterkeydown'"/><br>
<span class="validationMessage" data-bind='text: isValidSum.errors()'></span>
ko.validation.rules['mustEqual'] = {
validator: function (val, otherVal) {
return (parseInt(val.num1()) + parseInt(val.num2())) == otherVal;
},
message: 'total must equal {0}'
};
ko.validation.registerExtenders();
var viewModel = {
num1: ko.observable("50").extend({ number: true, min: 0, max: 100 }),
num2: ko.observable("50").extend({ number: true, min: 0, max: 100 })
};
viewModel.isValidSum = ko.validatedObservable({
num1: viewModel.num1,
num2: viewModel.num2
}).extend({ mustEqual: 100 });
ko.applyBindings(viewModel);
在Chrome中我可以看到「請輸入小於或等於值100」。如果我輸入大數字...... – nemesv
這些錯誤消息是針對每個數字的。我也需要驗證組。每個數字必須在0-100之間,總和必須等於100.我更新了示例,因爲它有缺陷。 – Homer