in google-cloud-server/src/main/resources/buildServerResources/knockout.validation-2.0.3.js [1350:1384]
kv.validateObservable = function (observable) {
var i = 0,
rule, // the rule validator to execute
ctx, // the current Rule Context for the loop
ruleContexts = observable.rules(), //cache for iterator
len = ruleContexts.length; //cache for iterator
for (; i < len; i++) {
//get the Rule Context info to give to the core Rule
ctx = ruleContexts[i];
// checks an 'onlyIf' condition
if (ctx.condition && !ctx.condition()) {
continue;
}
//get the core Rule to use for validation
rule = ctx.rule ? kv.rules[ctx.rule] : ctx;
if (rule['async'] || ctx['async']) {
//run async validation
validateAsync(observable, rule, ctx);
} else {
//run normal sync validation
if (!validateSync(observable, rule, ctx)) {
return false; //break out of the loop
}
}
}
//finally if we got this far, make the observable valid again!
observable.clearError();
return true;
};