2010-11-18 5 views
1

J'essaie d'utiliser le plugin Validate pour Jquery juste pour valider un champ. Je peux le faire fonctionner sur un formulaire de test simple mais quand j'ai essayé de le brancher dans un grand formulaire existant sur mon site, appeler validate renvoie undefined. Il est censé retourner un objet Validator. Comment puis-je déterminer ce qui ne va pas?jquery validate() retourne undefined

Voici le code exemple qui fonctionne:

<script type="text/javascript"> 
function tst(ctrl) { 
    var frm = $(ctrl).parents('form'); 
    alert('Is email valid? ' + frm.validate({ showErrors: function() { } }).element(ctrl)); 
} 
</script> 
<form id="form1" action="" method="post"> 
    <input type="text" name="email" onblur="tst(this)" class="email"/> 
</form> 

Cependant, si j'essaie ceci sur une forme existante beaucoup plus grande, les retours d'appel validate non défini, ce qui entraîne une erreur JavaScript appelant element. Je pense qu'il doit y avoir quelque chose dans la forme plus grande qui fait validate "crash", mais que pourrait-il être?

+0

Votre question actuelle "Comment puis-je déterminer ce qui ne va pas?" pourrait commencer par publier/montrer le code qui échoue pas ce qui fonctionne. –

Répondre

5

.valiate() ne renvoie pas de valeur booléenne, configure la validation.

Pour déterminer si un élément d'entrée <form> est valide, appelez .valid() pour obtenir un résultat booléen. Assurez-vous d'appeler ce après.validate(), car il n'y aura pas de configuration de validateur sur le <form> sinon.

+0

J'ai édité ma question. Mais il ne devrait toujours pas revenir indéfini. – JoelFan

+0

@JoelFan - Vous aurez besoin de montrer votre code ... par exemple, appelez-vous un '

'? ce n'est pas valide autrement. –

+0

@Nick, j'ai édité ma question – JoelFan

0

avez-vous essayer d'utiliser l'objet JQuery .. au lieu de var frm, en utilisant var $frm:

var $frm = $(ctrl).parents('form'); 
alert('Is email valid? ' + $frm.validate({ showErrors: function() { } }).element(ctrl)); 

lorsque vous définissez frm sans $ vous simplement stocker l'élément html dans une variable pur javascript, ne pas obtenir l'élément dans un objet JQuery ..