2010-04-20 6 views
0

Je suis relativement nouveau dans jQuery et j'ai un problème lors de la création d'un formulaire. J'utilise le plugin Validation pour valider le mail (un champ du formulaire). Lorsque je clique sur le bouton Soumettre, je veux appeler ma propre fonction car je veux enregistrer les données dans un fichier XML.Je ne parviens pas à effacer le formulaire après l'envoi de la validation à l'aide du plugin de validation jQuery

Ceci est mon bouton: (comme je l'ai compris le plugin utilise "soumettre" pour comprendre le bouton)

<input type="submit" name="submit" class="submit" id="submit_btn" value="Send"/> 

et voici le script pour la validation:

<script type="text/javascript"> 
    $(document).ready(function() { 

     //this is my form 
$("#contactForm").validate(); 

/*save the valid data in the xml*/ 
$(".submit").click(function() { 
var email = $("input#email").val(); 
var subject = $("input#subject").val(); 
var message = $("textarea#message").val(); 

if (email == "" || !$("#contactForm").valid()) { 
    return false; 
    }  

var dataString = 'email='+ email + '&subject=' + subject + '&message=' + message; 
//alert("DATA: " +dataString); 

    $.ajax({ 
    type: "POST", 
    url: "SaveData.jsp", 
    data: dataString, 
    success: function(data){} 
    }); 

    return false; 
}); 
}); 
</script> 

En général, il fonctionne bien mais j'ai deux problèmes de base. Lorsque je clique sur le bouton au début ayant tout le formulaire vide, je ne reçois aucun message pour le champ requis. Aussi, lorsque les données sont valides et que je fais la soumission, le formulaire ne devient pas clair après l'envoi.

Si j'ai supprimé ce code de script, ces actions fonctionnent correctement mais je ne peux pas enregistrer les données!

Est-ce que quelqu'un sait ce qui ne va pas?

Merci beaucoup!


J'ai finalement trouvé quelque chose. J'ai changé la ligne:

$(".submit").click(function() {....} 

avec celui-ci:

submitHandler: function() { ....} 

Alors maintenant, quand je clique sur le bouton, je reçois le bon message pour le champ obligatoire. La seule chose que je n'ai pas encore trouvé est de savoir comment effacer le formulaire après la soumission. Je sais comment le faire manuellement dans une autre fonction, mais j'ai vu que le plugin fait aussi cette chose. Donc, je pensais que c'est probablement mieux d'utiliser celui que le plugin a.

Alors, est-ce que quelqu'un sait ce qu'il ne va pas?

Merci

+0

Vous devez éditer votre titl e. Cela suggère que vous n'avez pas de problème :) – Chris

Répondre

1

En premier lieu, stocker une référence à votre validateur, comme ceci:

var validator = $("#contactForm").validate(); 

Dans votre gestionnaire $.ajaxsuccess, ou ailleurs si vous voulez, vous pouvez appeler ceci:

validator.resetForm(); 

You can read the docs for .resetForm() here

+0

Ok, ça marche comme ça! Merci beaucoup – novellino

Questions connexes