@@ -161,7 +161,7 @@ Nette.validateControl = function(elem, rules, onlyCheck, value) {
161161 message = rule . msg . replace ( / % ( v a l u e | \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 */
235247Nette . addError = function ( elem , message ) {
236248 if ( message ) {
0 commit comments