File tree Expand file tree Collapse file tree 1 file changed +29
-7
lines changed Expand file tree Collapse file tree 1 file changed +29
-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,12 @@ 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+ Nette . showFormErrors ( form , Nette . formErrors ) ;
238+ return ! Nette . formErrors . length ;
232239} ;
233240
234241
@@ -249,14 +256,29 @@ Nette.isDisabled = function(elem) {
249256
250257
251258/**
252- * Display error message.
259+ * Adds error message to the queue .
253260 */
254261Nette . addError = function ( elem , message ) {
255- if ( message ) {
256- alert ( message ) ;
262+ Nette . formErrors . push ( {
263+ element : elem ,
264+ message : message
265+ } ) ;
266+ } ;
267+
268+
269+ /**
270+ * Display error messages.
271+ */
272+ Nette . showFormErrors = function ( form , errors ) {
273+ if ( ! errors . length ) {
274+ return ;
275+ }
276+ var error = errors [ 0 ] ;
277+ if ( error . message ) {
278+ alert ( error . message ) ;
257279 }
258- if ( elem . focus ) {
259- elem . focus ( ) ;
280+ if ( error . element . focus ) {
281+ error . element . focus ( ) ;
260282 }
261283} ;
262284
You can’t perform that action at this time.
0 commit comments