J'essaie d'utiliser le plugin validate sur un div comme indiqué dans la réponse à cette question :
<script type="text/javascript">
$("#pseudoForm").validate({
onfocusout:true,
rules:{
first_name:"required",
last_name:"required"
}
});
</script>
<!-- whatever -->
<div id="pseudoForm">
<input type="text" name="first_name"/>
<input type="text" name="last_name"/>
</div>
J'ai tout dans un formulaire.
Je reçois un tas d'erreurs différentes sur différents navigateurs.
Toute aide appréciée!
Ce n'est pas la réponse que vous voulez entendre, mais l'autre réponse est incorrecte (elle avait peut-être raison lorsqu'elle a été publiée, mais plusieurs modifications majeures du plug-in de validation jQuery ont été effectuées depuis lors).
Le plug-in de validation est (actuellement) conçu pour fonctionner sur un <form>
, et uniquement sur un <form>
. Vous pouvez également noter que toute la documentation du plugin fait référence à un formulaire, pas à un autre conteneur générique.
Le plugin lui-même garde une trace de validator.currentForm
en interne, qui fait référence à la this
du sélecteur passé, obtenant .elements
, etc. .
La solution globale/approche alternative ici: appelez .validate()
sur l’élément <form>
(le wrapper jQuery pour cela plutôt) directement, pas un autre conteneur. Si vous devez diviser votre <form>
, utilisez <fieldset>
elements, en utilisant éventuellement l'option ignore: ':hidden'
dans .validate()
si vous ne souhaitez pas valider les champs de saisie non visibles par l'utilisateur.
Ouvrez jquery.validate.js
ou jquery.validate.min.js
et recherchez (ctrl + F) " label " et replaceAll
avec votre balise requise:
Exemple: div
puis effectuez la validation.
Il vous manque un crochet de fermeture. Essayez ceci à la place:
$("#pseudoForm").validate({
onfocusout:true,
rules:{
first_name:"required",
last_name:"required"
}
});