/
DefaultErrorRenderer.js
43 lines (34 loc) · 1.4 KB
/
DefaultErrorRenderer.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
_context.invoke('Nittro.Forms', function (DOM) {
var DefaultErrorRenderer = _context.extend(function () {
}, {
addError: function (form, element, message) {
var container = this._getErrorContainer(form, element),
elem;
if (container) {
if (element && element.parentNode === container) {
elem = DOM.create('span', {'class': 'error'});
} else {
elem = DOM.create(container.tagName.match(/^(ul|ol)$/i) ? 'li' : 'p', {'class': 'error'});
}
elem.textContent = message;
container.appendChild(elem);
}
},
cleanupErrors: function (form, element) {
var container = element ? this._getErrorContainer(form, element) : form;
if (container) {
DOM.getByClassName('error', container)
.forEach(function (elem) {
elem.parentNode.removeChild(elem);
});
}
},
_getErrorContainer: function (form, elem) {
var container = elem && elem.id ? DOM.getById(elem.id + '-errors') : null;
return container || DOM.getById(form.id + '-errors') || (elem ? elem.parentNode : null);
}
});
_context.register(DefaultErrorRenderer, 'DefaultErrorRenderer');
}, {
DOM: 'Utils.DOM'
});