@@ -458,6 +458,7 @@ Nette.toggleControl = function(elem, rules, success, firsttime, value) {
458458 value = value === undefined ? { value : Nette . getEffectiveValue ( elem ) } : value ;
459459
460460 var has = false ,
461+ handled = [ ] ,
461462 handler = function ( ) {
462463 Nette . toggleForm ( elem . form , elem ) ;
463464 } ,
@@ -497,11 +498,9 @@ Nette.toggleControl = function(elem, rules, success, firsttime, value) {
497498 els = curElem . tagName ? curElem . form . elements : curElem ;
498499
499500 for ( var i = 0 ; i < els . length ; i ++ ) {
500- if ( els [ i ] . name === name ) {
501- if ( oldIE && ! els [ i ] [ 'nette-toggleForm' ] ) { // change event fails to bubble in IE < 9
502- Nette . addEvent ( els [ i ] , els [ i ] . type in { checkbox : 1 , radio : 1 } ? 'click' : 'change' , handler ) ;
503- }
504- els [ i ] [ 'nette-toggleForm' ] = true ;
501+ if ( els [ i ] . name === name && ! Nette . inArray ( handled , els [ i ] ) ) {
502+ Nette . addEvent ( els [ i ] , oldIE && els [ i ] . type in { checkbox : 1 , radio : 1 } ? 'click' : 'change' , handler ) ;
503+ handled . push ( els [ i ] ) ;
505504 }
506505 }
507506 }
@@ -577,13 +576,6 @@ Nette.initOnLoad = function() {
577576 target . form [ 'nette-submittedBy' ] = target ;
578577 }
579578 } ) ;
580-
581- Nette . addEvent ( document . body , 'change' , function ( e ) {
582- var target = e . target || e . srcElement ;
583- if ( target [ 'nette-toggleForm' ] ) {
584- Nette . toggleForm ( target . form , target ) ;
585- }
586- } ) ;
587579 } ) ;
588580} ;
589581
0 commit comments