2010-09-23 3 views
0

J'essaie d'obtenir la hauteur du conteneur d'erreur lors de l'utilisation du plugin 'jquery validate' lors de la soumission d'un formulaire erroné, mais je n'arrive pas à obtenir la valeur de hauteur du conteneur d'erreur lorsqu'il apparaît. La boîte d'alerte ne montre même pas. Quelle est la solution, s'il vous plaît?jquery valider attraper la hauteur du conteneur d'erreur

Voici le code:

$(".validate").validate({ 
    rules: { 
     j_username: "required" 
    }, 
    submitHandler: function(form) { 
     //$(":submit", form).attr("disabled","disabled").val("Please wait...."); 

     $(":submit", form).attr({ 
           disabled: "disabled", 
           value: "Please wait...." 
           });   


     var errH = $("#errorMsgContainer").height(); 
     if($("#errorMsgContainer").is(":visible")){  
      alert("visible and '#errorMsgContainer' height is: " + errH); 
     } 
     else{ 
      alert("Not visible and '#errorMsgContainer' height is: " + errH); 
     } 

     form.submit(); 

     return false; 
    }, 
    messages: { 
     j_username: "Please type your email address correctly!", 
     j_password: "Your password and username do not match!" 
    }, 
    ignore: ".catalogueDD", 
    errorLabelContainer: $("#errorMsgContainer") 
}); 

Merci.

Répondre

0

si l'élément ne prend pas de place dans le document, puis est (« : caché ») retourne vrai même si elle est effectivement visible, il peut être plus sûr de faire au lieu ceci:

if(!$('#errorMsgContainer').is(':visible')) { 
    // it's hidden, do something 
} 
else { 
    // it's not hidden so do something else 
} 

SOURCE :: http://www.electrictoolbox.com/jquery-element-is-visible/

+0

@ De.ME.to.YOU: Merci pour la réponse! J'ai juste essayé votre solution mais rien ne se produit quand je clique sur le bouton soumettre. Je ne suis pas sûr mais je pense que c'est quelque chose à voir avec quand des 'événements' se déroulent dans le plugin 'validate'. Tout ce que je veux, c'est récupérer la hauteur du conteneur d'erreur quand il apparaît. Puisque le DOM est chargé, je ne vois pas pourquoi il devrait y avoir un problème mais ça devient ennuyeux ... – Shaoz

+0

1) votre #errorMsgContainer est div ou quoi? 2) exécutez-vous ce code après le chargement de DOM? – trrrrrrm

+0

Oui, c'est un div et le code est dans '$ (document) .ready (function() {})'. – Shaoz

Questions connexes