@@ -127,7 +127,7 @@ Nette.validateControl = function(elem, rules, onlyCheck) {
127127 var message = rule . msg . replace ( / % ( v a l u e | \d + ) / g, function ( foo , m ) {
128128 return Nette . getValue ( m === 'value' ? el : elem . form . elements [ arr [ m ] . control ] ) ;
129129 } ) ;
130- Nette . addError ( el , message ) ;
130+ Nette . formErrors . push ( { element : el , message : message } ) ;
131131 }
132132 return false ;
133133 }
@@ -141,11 +141,14 @@ Nette.validateControl = function(elem, rules, onlyCheck) {
141141 */
142142Nette . validateForm = function ( sender ) {
143143 var form = sender . form || sender , scope = false ;
144- if ( form [ 'nette-submittedBy' ] && form [ 'nette-submittedBy' ] . getAttribute ( 'formnovalidate' ) !== null ) {
144+ Nette . formErrors = [ ] ;
145+
146+ if ( form [ 'nette-submittedBy' ] && form [ 'nette-submittedBy' ] . getAttribute ( 'formnovalidate' ) ) {
145147 var scopeArr = Nette . parseJSON ( form [ 'nette-submittedBy' ] . getAttribute ( 'data-nette-validation-scope' ) ) ;
146148 if ( scopeArr . length ) {
147149 scope = new RegExp ( '^(' + scopeArr . join ( '-|' ) + '-)' ) ;
148150 } else {
151+ Nette . showFormErrors ( form , Nette . formErrors ) ;
149152 return true ;
150153 }
151154 }
@@ -162,15 +165,13 @@ Nette.validateForm = function(sender) {
162165 radios [ elem . name ] = true ;
163166 }
164167
165- if ( ( scope && ! elem . name . replace ( / ] \[ | \[ | ] | $ / g, '-' ) . match ( scope ) ) || Nette . isDisabled ( elem ) ) {
166- continue ;
167- }
168-
169- if ( ! Nette . validateControl ( elem ) ) {
170- return false ;
168+ if ( ( ! scope || elem . name . replace ( / ] \[ | \[ | ] | $ / g, '-' ) . match ( scope ) ) && ! Nette . isDisabled ( elem ) ) {
169+ Nette . validateControl ( elem ) ;
171170 }
172171 }
173- return true ;
172+
173+ Nette . showFormErrors ( form , Nette . formErrors ) ;
174+ return Nette . formErrors . length === 0 ;
174175} ;
175176
176177
@@ -191,8 +192,19 @@ Nette.isDisabled = function(elem) {
191192} ;
192193
193194
195+ /**
196+ * Display all error messages.
197+ */
198+ Nette . showFormErrors = function ( form , errors ) {
199+ if ( errors . length ) {
200+ Nette . addError ( errors [ 0 ] . element , errors [ 0 ] . message ) ;
201+ }
202+ } ;
203+
204+
194205/**
195206 * Display error message.
207+ * @deprecated
196208 */
197209Nette . addError = function ( elem , message ) {
198210 if ( elem . focus ) {
0 commit comments