@@ -127,7 +127,7 @@ Nette.validateControl = function(elem, rules, onlyCheck) {
127
127
var message = rule . msg . replace ( / % ( v a l u e | \d + ) / g, function ( foo , m ) {
128
128
return Nette . getValue ( m === 'value' ? el : elem . form . elements [ arr [ m ] . control ] ) ;
129
129
} ) ;
130
- Nette . addError ( el , message ) ;
130
+ Nette . formErrors . push ( { element : el , message : message } ) ;
131
131
}
132
132
return false ;
133
133
}
@@ -141,11 +141,14 @@ Nette.validateControl = function(elem, rules, onlyCheck) {
141
141
*/
142
142
Nette . validateForm = function ( sender ) {
143
143
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' ) ) {
145
147
var scopeArr = Nette . parseJSON ( form [ 'nette-submittedBy' ] . getAttribute ( 'data-nette-validation-scope' ) ) ;
146
148
if ( scopeArr . length ) {
147
149
scope = new RegExp ( '^(' + scopeArr . join ( '-|' ) + '-)' ) ;
148
150
} else {
151
+ Nette . showFormErrors ( form , Nette . formErrors ) ;
149
152
return true ;
150
153
}
151
154
}
@@ -162,15 +165,13 @@ Nette.validateForm = function(sender) {
162
165
radios [ elem . name ] = true ;
163
166
}
164
167
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 ) ;
171
170
}
172
171
}
173
- return true ;
172
+
173
+ Nette . showFormErrors ( form , Nette . formErrors ) ;
174
+ return Nette . formErrors . length === 0 ;
174
175
} ;
175
176
176
177
@@ -191,8 +192,19 @@ Nette.isDisabled = function(elem) {
191
192
} ;
192
193
193
194
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
+
194
205
/**
195
206
* Display error message.
207
+ * @deprecated
196
208
*/
197
209
Nette . addError = function ( elem , message ) {
198
210
if ( elem . focus ) {
0 commit comments