Skip to content

Commit aa17b86

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

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
@@ -142,7 +142,7 @@ Nette.validateControl = function(elem, rules, onlyCheck, value) {
142142
message = rule.msg.replace(/%(value|\d+)/g, function(foo, m) {
143143
return Nette.getValue(m === 'value' ? curElem : elem.form.elements[arr[m].control]);
144144
});
145-
Nette.addError(curElem, message);
145+
Nette.formErrors.push({element: curElem, message: message});
146146
}
147147
return false;
148148
}
@@ -158,11 +158,14 @@ Nette.validateForm = function(sender) {
158158
var form = sender.form || sender,
159159
scope = false;
160160

161-
if (form['nette-submittedBy'] && form['nette-submittedBy'].getAttribute('formnovalidate') !== null) {
161+
Nette.formErrors = [];
162+
163+
if (form['nette-submittedBy'] && form['nette-submittedBy'].getAttribute('formnovalidate')) {
162164
var scopeArr = Nette.parseJSON(form['nette-submittedBy'].getAttribute('data-nette-validation-scope'));
163165
if (scopeArr.length) {
164166
scope = new RegExp('^(' + scopeArr.join('-|') + '-)');
165167
} else {
168+
Nette.showFormErrors(form, Nette.formErrors);
166169
return true;
167170
}
168171
}
@@ -182,15 +185,13 @@ Nette.validateForm = function(sender) {
182185
radios[elem.name] = true;
183186
}
184187

185-
if ((scope && !elem.name.replace(/]\[|\[|]|$/g, '-').match(scope)) || Nette.isDisabled(elem)) {
186-
continue;
187-
}
188-
189-
if (!Nette.validateControl(elem)) {
190-
return false;
188+
if ((!scope || elem.name.replace(/]\[|\[|]|$/g, '-').match(scope)) && !Nette.isDisabled(elem)) {
189+
Nette.validateControl(elem);
191190
}
192191
}
193-
return true;
192+
193+
Nette.showFormErrors(form, Nette.formErrors);
194+
return Nette.formErrors.length === 0;
194195
};
195196

196197

@@ -211,8 +212,19 @@ Nette.isDisabled = function(elem) {
211212
};
212213

213214

215+
/**
216+
* Display all error messages.
217+
*/
218+
Nette.showFormErrors = function(form, errors) {
219+
if (errors.length) {
220+
Nette.addError(errors[0].element, errors[0].message);
221+
}
222+
};
223+
224+
214225
/**
215226
* Display error message.
227+
* @deprecated
216228
*/
217229
Nette.addError = function(elem, message) {
218230
if (message) {

0 commit comments

Comments
 (0)