in plugin-azure-server/src/main/resources/buildServerResources/knockout.validation-2.0.3.js [1096:1140]
update: function (element, valueAccessor, allBindingsAccessor) {
var obsv = valueAccessor(),
config = kv.utils.getConfigOptions(element),
val = unwrap(obsv),
msg = null,
isModified = false,
isValid = false;
if (obsv === null || typeof obsv === 'undefined') {
throw new Error('Cannot bind validationElement to undefined value. data-bind expression: ' +
element.getAttribute('data-bind'));
}
isModified = obsv.isModified && obsv.isModified();
isValid = obsv.isValid && obsv.isValid();
// create an evaluator function that will return something like:
// css: { validationElement: true }
var cssSettingsAccessor = function () {
var css = {};
var shouldShow = ((!config.decorateElementOnModified || isModified) ? !isValid : false);
// css: { validationElement: false }
css[config.errorElementClass] = shouldShow;
return css;
};
//add or remove class on the element;
ko.bindingHandlers.css.update(element, cssSettingsAccessor, allBindingsAccessor);
if (!config.errorsAsTitle) { return; }
ko.bindingHandlers.attr.update(element, function () {
var
hasModification = !config.errorsAsTitleOnModified || isModified,
title = kv.utils.getOriginalElementTitle(element);
if (hasModification && !isValid) {
return { title: obsv.error, 'data-orig-title': title };
} else if (!hasModification || isValid) {
return { title: title, 'data-orig-title': null };
}
});
}