2012-04-03 11 views
0

Ich verwende mootools & moocheck Javascript-Bibliotheken für benutzerdefinierte Kontrollkästchen und Radiobuttons.Mootools/moocheck aktualisiert den Stil nicht, wenn das Kontrollkästchen programmatisch aktiviert ist

<script type="text/javascript" src="<%= Url.Content("~/Scripts/jquery-1.4.2.min.js") %>"></script> 
<script type="text/javascript" src="<%= Url.Content("~/Scripts/mootools.js") %>"></script> 
<script type="text/javascript" src="<%= Url.Content("~/Scripts/moocheck.js") %>"></script> 

Dies funktioniert gut und zeigt die benutzerdefinierten Kontrollkästchen Stile propery. Aber wenn ich das Kontrollkästchen aktiviert habe, um jQuery programmatisch zu überprüfen, wird der Checkbox-Stil nicht aktualisiert.

jQuery(document).ready(function() { 
     FancyForm.start(); 

     jQuery('#changeIt').click(function() { 
      jQuery('#checkthis').attr('checked', true); 
      jQuery('#checkthis').attr('checked', 'checked');     
     }); 

    }); 
+0

hier ist ein Link zu moocheck [ Link] (http://code.google.com/p/zoom-gallery/source/browse/branches/zmg_2.6/var/www/templates/admin/js/moocheck.js?spec=svn138&r=138). FireEvent hat das Problem nicht gelöst. – Pravin

+1

http://code.google.com/p/zoom-gallery/source/browse/branches/zmg_2.6/var/www/templates/admin/js/moocheck.js?spec=svn138&r=138#62 - Sie muss '$ (" checkthis ") tun. fireEvent (" click ")' um es auszulösen - oder 'FancyForm.select ($ (" checkthis ") nennen)' –

+0

Danke Dimitar, aber aus irgendeinem Grund versteht es nicht beide oben genannten Wege. Für den Moment, was ich mache, ist Zugriff auf FancyForm.chks Sammlung und Abrufen von "checkthis" von ihm, dann übergibt das gesuchte Element zurück zu FancyForm.select funktioniert. – Pravin

Antwort

0

Added folgende Methode moocheck.js für die Aktualisierung spezifischen Checkbox oder Radiobutton

updateSpecific: function (ctrlId, isChecked) { 
    FancyForm.chks.each(function (chk) { 
     if (chk.inputElement.getProperty('id') == ctrlId) { 
      chk.inputElement.setProperty('checked', isChecked);    
     } 
    }); 
} 

und modifiziert, um den Client-Code wie folgt ...

jQuery(document).ready(function() { 
     FancyForm.start(); 

     jQuery('#changeIt').click(function() { 
      FancyForm.updateSpecific('checkthis', true); 
     }); 
    });