File tree Expand file tree Collapse file tree 1 file changed +30
-7
lines changed Expand file tree Collapse file tree 1 file changed +30
-7
lines changed Original file line number Diff line number Diff line change 3030
3131var Nette = { } ;
3232
33+ Nette . formErrors = [ ] ;
34+
35+
3336/**
3437 * Attaches a handler to an event for the element.
3538 */
@@ -196,11 +199,14 @@ Nette.validateForm = function(sender) {
196199 var form = sender . form || sender ,
197200 scope = false ;
198201
202+ Nette . formErrors = [ ] ;
203+
199204 if ( form [ 'nette-submittedBy' ] && form [ 'nette-submittedBy' ] . getAttribute ( 'formnovalidate' ) !== null ) {
200205 var scopeArr = Nette . parseJSON ( form [ 'nette-submittedBy' ] . getAttribute ( 'data-nette-validation-scope' ) ) ;
201206 if ( scopeArr . length ) {
202207 scope = new RegExp ( '^(' + scopeArr . join ( '-|' ) + '-)' ) ;
203208 } else {
209+ Nette . showFormErrors ( form , [ ] ) ;
204210 return true ;
205211 }
206212 }
@@ -224,11 +230,13 @@ Nette.validateForm = function(sender) {
224230 continue ;
225231 }
226232
227- if ( ! Nette . validateControl ( elem ) ) {
233+ if ( ! Nette . validateControl ( elem ) && ! Nette . formErrors . length ) {
228234 return false ;
229235 }
230236 }
231- return true ;
237+ var success = ! Nette . formErrors . length ;
238+ Nette . showFormErrors ( form , Nette . formErrors ) ;
239+ return success ;
232240} ;
233241
234242
@@ -249,14 +257,29 @@ Nette.isDisabled = function(elem) {
249257
250258
251259/**
252- * Display error message.
260+ * Adds error message to the queue .
253261 */
254262Nette . addError = function ( elem , message ) {
255- if ( message ) {
256- alert ( message ) ;
263+ Nette . formErrors . push ( {
264+ element : elem ,
265+ message : message
266+ } ) ;
267+ } ;
268+
269+
270+ /**
271+ * Display error messages.
272+ */
273+ Nette . showFormErrors = function ( form , errors ) {
274+ if ( ! errors . length ) {
275+ return ;
276+ }
277+ var error = errors [ 0 ] ;
278+ if ( error . message ) {
279+ alert ( error . message ) ;
257280 }
258- if ( elem . focus ) {
259- elem . focus ( ) ;
281+ if ( error . element . focus ) {
282+ error . element . focus ( ) ;
260283 }
261284} ;
262285
You can’t perform that action at this time.
0 commit comments