Skip to content

Commit ce97116

Browse files
committed
netteForms: errors are showed at once using Nette.showFormErrors() instead of Nette.addError()
1 parent b6d4097 commit ce97116

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

src/assets/netteForms.js

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ Nette.validateControl = function(elem, rules, onlyCheck, value) {
161161
message = rule.msg.replace(/%(value|\d+)/g, function(foo, m) {
162162
return Nette.getValue(m === 'value' ? curElem : elem.form.elements.namedItem(arr[m].control));
163163
});
164-
Nette.addError(curElem, message);
164+
Nette.formErrors.push({element: curElem, message: message});
165165
}
166166
return false;
167167
}
@@ -177,11 +177,14 @@ Nette.validateForm = function(sender) {
177177
var form = sender.form || sender,
178178
scope = false;
179179

180-
if (form['nette-submittedBy'] && form['nette-submittedBy'].getAttribute('formnovalidate') !== null) {
180+
Nette.formErrors = [];
181+
182+
if (form['nette-submittedBy'] && form['nette-submittedBy'].getAttribute('formnovalidate')) {
181183
var scopeArr = Nette.parseJSON(form['nette-submittedBy'].getAttribute('data-nette-validation-scope'));
182184
if (scopeArr.length) {
183185
scope = new RegExp('^(' + scopeArr.join('-|') + '-)');
184186
} else {
187+
Nette.showFormErrors(form, Nette.formErrors);
185188
return true;
186189
}
187190
}
@@ -201,15 +204,13 @@ Nette.validateForm = function(sender) {
201204
radios[elem.name] = true;
202205
}
203206

204-
if ((scope && !elem.name.replace(/]\[|\[|]|$/g, '-').match(scope)) || Nette.isDisabled(elem)) {
205-
continue;
206-
}
207-
208-
if (!Nette.validateControl(elem)) {
209-
return false;
207+
if ((!scope || elem.name.replace(/]\[|\[|]|$/g, '-').match(scope)) && !Nette.isDisabled(elem)) {
208+
Nette.validateControl(elem);
210209
}
211210
}
212-
return true;
211+
212+
Nette.showFormErrors(form, Nette.formErrors);
213+
return Nette.formErrors.length === 0;
213214
};
214215

215216

@@ -229,8 +230,19 @@ Nette.isDisabled = function(elem) {
229230
};
230231

231232

233+
/**
234+
* Display all error messages.
235+
*/
236+
Nette.showFormErrors = function(form, errors) {
237+
if (errors.length) {
238+
Nette.addError(errors[0].element, errors[0].message);
239+
}
240+
};
241+
242+
232243
/**
233244
* Display error message.
245+
* @deprecated
234246
*/
235247
Nette.addError = function(elem, message) {
236248
if (message) {

0 commit comments

Comments
 (0)