admin管理员组文章数量:1289586
Consider the following piece of code -
var MyObjectModel = function(myObject){
var self = this;
self.myNumber1 = ko.observable(myObject.number1).trimmed();
self.myNumber2 = ko.observable(myObject.number2).trimmed();
I would like to extend myNumber1 and myNumber2, to add knockout validations such that it throws an error if both are empty, and stays fine if either has a value.
Any idea how I could go about achieving this ?
Consider the following piece of code -
var MyObjectModel = function(myObject){
var self = this;
self.myNumber1 = ko.observable(myObject.number1).trimmed();
self.myNumber2 = ko.observable(myObject.number2).trimmed();
I would like to extend myNumber1 and myNumber2, to add knockout validations such that it throws an error if both are empty, and stays fine if either has a value.
Any idea how I could go about achieving this ?
Share Improve this question asked Jan 15, 2013 at 6:01 Vishnu NarangVishnu Narang 6058 silver badges15 bronze badges2 Answers
Reset to default 9You can use an ko.puted to create a function which checks if at least any of both fields is set and onlyIf in the validation to execute the validation conditionally.
var MyObjectModel = function (myObject) {
var self = this;
self.myNumber1 = ko.observable(myObject.number1);
self.myNumber2 = ko.observable(myObject.number2);
self.numbersHaveNoValue = ko.puted(function () {
var value1 = self.myNumber1(), value2 = self.myNumber2();
return !ko.validation.rules.required.validator(value1, true) &&
!ko.validation.rules.required.validator(value2, true);
});
self.myNumber1.extend({ required: { onlyIf: self.numbersHaveNoValue }});
self.myNumber2.extend({ required: { onlyIf: self.numbersHaveNoValue }});
}
I have created a fiddle: http://jsfiddle/delixfe/aBytt/
var MyObjectModel = function(myObject) {
var self = this;
self.myNumber1 = ko.observable(myObject.number1).trimmed();
self.myNumber2 = ko.observable(myObject.number2).trimmed();
self.numberCount = ko.puted(function() {
var count = 0;
count += self.myNumber1() != '' ? 1 : 0;
count += self.myNumber2() != '' ? 1 : 0;
return count;
}).extend({min:1});
}
本文标签: javascriptKnockout Validation of two interdependent fieldsStack Overflow
版权声明:本文标题:javascript - Knockout Validation of two interdependent fields - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741421721a2377845.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论