@@ -192,23 +192,39 @@ Nette.isDisabled = function(elem) {
192
192
} ;
193
193
194
194
195
+ /**
196
+ * CSS class.
197
+ */
198
+ Nette . formErrorClass = 'nette-form-error' ;
199
+
200
+
195
201
/**
196
202
* Display all error messages.
197
203
*/
198
204
Nette . showFormErrors = function ( form , errors ) {
199
- if ( errors . length ) {
200
- Nette . addError ( errors [ 0 ] . element , errors [ 0 ] . message ) ;
205
+ var boxes = form . getElementsByTagName ( 'span' ) ;
206
+ for ( var i = boxes . length - 1 ; i >= 0 ; i -- ) {
207
+ if ( boxes [ i ] . getAttribute ( 'class' ) === Nette . formErrorClass ) {
208
+ boxes [ i ] . parentNode . removeChild ( boxes [ i ] ) ;
209
+ }
201
210
}
202
- } ;
203
211
212
+ for ( var i = 0 ; i < errors . length ; i ++ ) {
213
+ if ( i === 0 && errors [ i ] . element . focus ) {
214
+ errors [ i ] . element . focus ( ) ;
215
+ }
204
216
205
- /**
206
- * Display error message.
207
- * @deprecated
208
- */
209
- Nette . addError = function ( elem , message ) {
210
- if ( elem . focus ) {
211
- elem . focus ( ) ;
217
+ if ( errors [ i ] . message ) {
218
+ var box = document . createElement ( 'span' ) ;
219
+ box . setAttribute ( 'class' , Nette . formErrorClass ) ;
220
+ box . textContent = errors [ i ] . message ;
221
+ errors [ i ] . element . parentNode . insertBefore ( box , errors [ i ] . element . nextSibling ) ;
222
+ Nette . addEvent ( errors [ i ] . element , 'keypress' , function ( ) {
223
+ if ( this . nextSibling && this . nextSibling . getAttribute ( 'class' ) === Nette . formErrorClass ) {
224
+ this . parentNode . removeChild ( this . nextSibling ) ;
225
+ }
226
+ } ) ;
227
+ }
212
228
}
213
229
if ( message ) {
214
230
alert ( message ) ;
0 commit comments