2009-10-15 10 views
0

J'ai une application mvc asp.net où je veux cacher/afficher une partie du formulaire en fonction de la ligne sélectionnée dans une liste déroulante. Cela se fait par le script jQuery:masquer une partie du formulaire

<script type="text/javascript" > 
    $(document).ready(function() { 
     $('#owners').change(function() { 
      $("select option:selected").each(function() { 
       $('.location').css("display", "none"); 
       $('#canDeleteUsers').css("display", "none");      
      }); 
      if (($("option:selected").attr("value")) == "") { 
       $("select option:selected").each(function() { 
        $('.location').css("display", "block"); 
        $('#canDeleteUsers').css("display", "block"); 
       }); 
      } 
     }); 
    });    
</script> 

Maintenant, le problème est que lorsqu'un utilisateur viole une partie de la logique et je retourne la vue à nouveau être validé, si la liste déroulante a été sélectionnée pour la variante, qui est censé pour masquer la partie du formulaire, il apparaît toujours.

Des idées à ce sujet? Merci d'avance.

Répondre

1

Bien sûr; la page est rechargée et la visibilité sera réinitialisée. Une option consisterait à déplacer la logique qui détermine si la partie du formulaire doit être masquée dans une fonction distincte (nommée) et d'appeler cette fonction une fois sur document.ready, ainsi que sur l'événement de modification de la liste déroulante.

0

Extrayez votre logique pour vous cacher en montrant le formulaire dans une fonction par vous-même. Appelez cette fonction sur l'événement change et appelez-le également sur document prêt.

Questions connexes