考虑下面的代码 -
var MyObjectModel = function(myObject){
var self = this;
self.myNumber1 = ko.observable(myObject.number1).trimmed();
self.myNumber2 = ko.observable(myObject.number2).trimmed();
我想扩展 myNumber1 和 myNumber2,添加淘汰验证,这样如果两者都为空,它会抛出错误,如果其中一个有值,则保持正常。
知道我该如何实现这一目标吗?
您可以使用 ko.compulated 创建一个函数,该函数检查是否至少设置了两个字段中的任何一个,并在验证中检查 onlyIf 以有条件地执行验证。
var MyObjectModel = function (myObject) {
var self = this;
self.myNumber1 = ko.observable(myObject.number1);
self.myNumber2 = ko.observable(myObject.number2);
self.numbersHaveNoValue = ko.computed(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 }});
}
我创建了一个小提琴:http://jsfiddle.net/delixfe/aBytt/ http://jsfiddle.net/delixfe/aBytt/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)