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