@@ -420,7 +420,8 @@ Nette.toggleControl = function(elem, rules, success, firsttime, value) {
420420 handled = [ ] ,
421421 handler = function ( ) {
422422 Nette . toggleForm ( elem . form , elem ) ;
423- } ;
423+ } ,
424+ curSuccess ;
424425
425426 for ( var id = 0 , len = rules . length ; id < len ; id ++ ) {
426427 var rule = rules [ id ] ,
@@ -431,20 +432,24 @@ Nette.toggleControl = function(elem, rules, success, firsttime, value) {
431432 continue ;
432433 }
433434
435+ curSuccess = success ;
434436 if ( success !== false ) {
435437 rule . neg = op [ 1 ] ;
436438 rule . op = op [ 2 ] ;
437- var curValue = elem === curElem ? value : { value : Nette . getEffectiveValue ( curElem ) } ,
438- res = Nette . validateRule ( curElem , rule . op , rule . arg , curValue ) ;
439- if ( res === null ) {
439+ var curValue = elem === curElem ? value : { value : Nette . getEffectiveValue ( curElem ) } ;
440+ curSuccess = Nette . validateRule ( curElem , rule . op , rule . arg , curValue ) ;
441+ if ( curSuccess === null ) {
440442 continue ;
441443
442- } else if ( ! rule . rules ) {
443- success = rule . neg ? ! res : res ;
444+ } else if ( rule . neg ) {
445+ curSuccess = ! curSuccess ;
446+ }
447+ if ( ! rule . rules ) {
448+ success = curSuccess ;
444449 }
445450 }
446451
447- if ( ( rule . rules && Nette . toggleControl ( elem , rule . rules , success , firsttime , value ) ) || rule . toggle ) {
452+ if ( ( rule . rules && Nette . toggleControl ( elem , rule . rules , curSuccess , firsttime , value ) ) || rule . toggle ) {
448453 has = true ;
449454 if ( firsttime ) {
450455 var oldIE = ! document . addEventListener , // IE < 9
@@ -459,7 +464,7 @@ Nette.toggleControl = function(elem, rules, success, firsttime, value) {
459464 }
460465 for ( var id2 in rule . toggle || [ ] ) {
461466 if ( Object . prototype . hasOwnProperty . call ( rule . toggle , id2 ) ) {
462- Nette . toggles [ id2 ] = Nette . toggles [ id2 ] || ( rule . toggle [ id2 ] ? success : ! success ) ;
467+ Nette . toggles [ id2 ] = Nette . toggles [ id2 ] || ( rule . toggle [ id2 ] ? curSuccess : ! curSuccess ) ;
463468 }
464469 }
465470 }
0 commit comments