Skip to content

Commit 080f333

Browse files
committed
netteForms: alert() replaced with span.nette-form-error
1 parent ec29bc3 commit 080f333

File tree

1 file changed

+26
-10
lines changed

1 file changed

+26
-10
lines changed

src/assets/netteForms.js

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -192,23 +192,39 @@ Nette.isDisabled = function(elem) {
192192
};
193193

194194

195+
/**
196+
* CSS class.
197+
*/
198+
Nette.formErrorClass = 'nette-form-error';
199+
200+
195201
/**
196202
* Display all error messages.
197203
*/
198204
Nette.showFormErrors = function(form, errors) {
199-
if (errors.length) {
200-
Nette.addError(errors[0].element, errors[0].message);
205+
var boxes = form.getElementsByTagName('span');
206+
for (var i = boxes.length - 1; i >= 0; i--) {
207+
if (boxes[i].getAttribute('class') === Nette.formErrorClass) {
208+
boxes[i].parentNode.removeChild(boxes[i]);
209+
}
201210
}
202-
};
203211

212+
for (var i = 0; i < errors.length; i++) {
213+
if (i === 0 && errors[i].element.focus) {
214+
errors[i].element.focus();
215+
}
204216

205-
/**
206-
* Display error message.
207-
* @deprecated
208-
*/
209-
Nette.addError = function(elem, message) {
210-
if (elem.focus) {
211-
elem.focus();
217+
if (errors[i].message) {
218+
var box = document.createElement('span');
219+
box.setAttribute('class', Nette.formErrorClass);
220+
box.textContent = errors[i].message;
221+
errors[i].element.parentNode.insertBefore(box, errors[i].element.nextSibling);
222+
Nette.addEvent(errors[i].element, 'keypress', function() {
223+
if (this.nextSibling && this.nextSibling.getAttribute('class') === Nette.formErrorClass) {
224+
this.parentNode.removeChild(this.nextSibling);
225+
}
226+
});
227+
}
212228
}
213229
if (message) {
214230
alert(message);

0 commit comments

Comments
 (0)