plugin jQuery validation d'erreur: TypeError: validator est pas défini
Voici le code html pour le formulaire:
<form method="post" id="login" action="/login">
<div class="login-element">
<label for="email">E-Mail</label>
<input type="text" name="email">
</div>
<div class="login-element">
<label for="password">Passwort</label>
<input type="password" name="password">
</div>
<div class="login-element">
<input type="submit" value="Login">
</div>
</form>
et voici le code que j'ai utilisé pour la validation:
$(document).ready(function() {
$("#login").validate({
debug: true,
rules: {
email: {
required: true,
email: true
},
password: {
required: true
}
},
messages: {
email: {
required: "Please enter a email adress",
email: "Please enter a valid email address"
},
password:"Please enter password"
}
});
});
Dans la console d'erreur suivant est enregistré:
TypeError: validator is undefined
...or.settings[eventType] && validator.settings[eventType].call(validator, this[0],...
Quel pourrait être le problème ici?
- On dirait que vous avez oublié d'inclure le plugin lui-même.
- J'ai pensé que peut être le problème. Mais dans la tête, j'ai suivantes:
code
<script type="text/javascript" src="/js/jquery-min.js"></script> <script type="text/javascript" src="/js/jquery.validate.js"></script> <script type="text/javascript" src="/js/login-validation.js"></script> <script type="text/javascript" src="/js/jquery-ui.min.js"></script> - Cela ne veut pas dire n'importe quoi, si ils ne sont pas tous situés à ceux de l'URL sans vous donner toutes les erreurs 404.
- Êtes-vous utilisez est compatible avec les versions de jQuery et de Valider?
- Une fois que j'ai réalisé que validate.js a été importé à la page dupliquée (à partir d'un master de mise en page et l'autre des sous-vues). De sorte que la validation côté client n'a pas travaillé. Après le retrait dupliqué importations, il a travaillé parfaite.
Vous devez vous connecter pour publier un commentaire.
Cette erreur qui s'est passé parce que j'avais un autre élément html avec le même id.
Après la suppression de l'identifiant code a bien fonctionné.
TypeError: j is undefined
. Si l'erreur était différent(mais similaires, ce qui m'a amené à ce poste) le problème était le même que celui décrit ici. Merci.<ul>
au lieu</ul>
humph!Vous devez inclure le script de validation dans la tête de votre document.
Comme ceci:
Aussi, s'il vous plaît vérifier le rendu HTML de votre formulaire ID est correct.
J'utilise ce code pour l'appel à valider sur mes sites
Pour quiconque cherche toujours une réponse et les réponses ci-dessus ne fonctionnent pas..
J'ai passé les 3 dernières heures à essayer toutes les solution et aucun d'entre eux travaillaient.
J'ai finalement réalisé une très stupide erreur , j'avais initialisé Jquery deux fois dans ma demande
fois dans la tête, où j'avais inclus 3 scripts
et une fois de plus à la fin de la page où je n'avais que le ligne.
C'était la réinitialisation du programme de validation de la fonction de dollars et causant de tout casser.
Quelques points à vérifier pour les cas où les validations ne sont pas de tir.
Est le script dans le bon ordre ? jquery suivie de valider suivie par des non-intrusif.
Est l' $.programme de validation de la fonction définie ? De vérifier rapidement dans la console du navigateur
Est le formulaire pour être validé être créé dynamiquement ? Si oui , vous pouvez avoir à le ré initialiser le plugin validator sur la forme , le meilleur moyen que j'ai trouvé de faire cela est mentionné ci-dessous , choisissez celle qui convient bien pour vous.
ou
ou
Espère que cette aide.
Le même problème s'est présenté pour moi. La raison de cette erreur ce que j'ai été en utilisant le code:
Et la
id
de laform
élément n'est pas valideDans mon cas, le problème est venu, qui avait les deux instances versions de Jquery UI i JQuery. Cela fait que Jquery normale code fonctionne bien, mais supprimer l'intance de $.validateur.
Dans mon cas, l'erreur était parce que le validateur a été appelé trop tôt. J'ai déplacé le code à une autre fonction et l'a appelée à l'aide de méthode délai de underscore.js. A travaillé comme un charme.
J'avais
@Scripts.Render("~/bundles/jquery")
dans la vue parent (_Layout.cshtml) et a également défini quelques autres jquery balises Script dans un autre point de vue, ils se sont affrontés.Parce que c'est le premier sujet que Google affiche pour le "validateur n'est pas défini" alors, je vais décrire mon problème, peut-être que quelqu'un va le trouver utile.
J'ai été en utilisant 'maxlength' attribut (rien de compliqué) et j'ai eu cette erreur. La raison en était des formulaires imbriqués. L'un des textarea a l'intérieur de ces deux formes. Peut se produire lorsque vous avez des modaux (boîtes de dialogue) avec des formes dans la vue principale.
Le plugin est livré dans les bibliothèques distinctes, vous devez inclure ces dans votre code html.
Même qui s'est passé ici. Pour moi, c'était une faute de frappe dans mon code:
Ce problème a été produit pour moi lors de l'appel du programme de validation.destroy() - l'erreur a été exercée au sein de la staticRules méthode du plugin. La cause s'est avéré être le formulaire associé élément (l'élément.formulaire) a été détachée de la DOM. Je l'ai résolu en cochant l'élément dans le DOM avant l'appel à la détruire, à l'aide de la méthode suivante:
J'espère que cela aide quelqu'un.
Dans mon cas, j'ai été appeler
$.validator
avant$(document).ready
. Une fois que je l'ai déplacé à une fonction appelée deready
, il a travaillé. Il travaillera pendant ou après l'ready
mais pas avant.