JQuery.Valider l'ajout des règles dynamiques avec des messages
J'ai un formulaire sur lequel je suis à l'aide de jquery.valider. J'ai d'abord appel à valider avec un ensemble de règles et de messages personnalisés...
$("#formName").validate( {
rules: {
myExistingInput: {
required: true
}
},
messages: {
myExistingInput: {
required: "Enter something"
}
},
ignore: null, //include hidden fields (see below)
submitHandler: function(form) {
//do stuff
},
invalidHandler: function(event, validator) {
//do stuff (some of the fields may have been hidden by a collapsible panel
//if there is an error on one of those fields, expand the panel so the error
//becomes visible)
}
});
Plus tard, j'ai ajouter dynamiquement des champs du formulaire, et ajouter des règles pour ces champs de trop...
$("#formName").append(...);
$("#newInputName").rules("add", {
required: true,
messages: {
required: "Enter something else"
}
});
Si je puis soumettez le formulaire, j'obtiens une erreur à partir de l'intérieur de jquery.valider...
Exception s'est produite lors de la vérification de l'élément newInputName, vérifier la
"messages" de la méthode.TypeError: Impossible d'obtenir la propriété "appel" de
undefined ou null référence
De débogage dans le navigateur, je peux voir l'erreur est générée à partir de la "case" de la fonction, et que la "méthode" de la variable est définie sur "messages".
Si je supprime les messages à partir de l'appel à des règles("ajouter",...
$("#newInputName").rules("add", {
required: true
});
qu'il fonctionne comme prévu, mais, évidemment, j'ai maintenant pas de messages d'erreur personnalisés.
J'ai vu de nombreux exemples ici AFIN de m'indiquant que ma syntaxe est correcte. Des suggestions?
BTW: Plugin jQuery Validation - v1.11.0 - 2/4/2013
Veuillez modifier votre OP inclure cette info.
vous avez raison, fixe dans le numéro 670. J'ai répliqué que la correction dans mon exemplaire, jusqu'à ce qu'une nouvelle version est officiellement sorti. Également fixé dans le numéro 674, mais je ne sais pas quelle version sera à la libération. Code manquant dans normalizeRules entre les versions 10 et 11 identifié au no 674 (restauration de ce code manquant résout le problème de trop), mais curieusement le correctif proposé en #674 n'est pas de restaurer le code et diffère également de la #670.
Je ne suis pas sûr que ce soit un bug... vous pouvez voir mon jsFiddle ci-dessous fonctionne bien avec jQ Mobile.
OriginalL'auteur Martin Robins | 2013-03-18
Vous devez vous connecter pour publier un commentaire.
Votre code semble fonctionner, sans erreur, comme vous l'avez posté.
DÉMO avec DOM ready: http://jsfiddle.net/UZTnE/
DÉMO avec PageInit & jQuery Mobile: http://jsfiddle.net/xJ3E2/
HTML:
BTW:
ce...
devrait être...
Voir: jQuery Validate - afin de Permettre la validation des champs cachés
il suffit d'ouvrir jsfiddle.net/xJ3E2/show dans votre navigateur et "afficher la source". Le comparer à votre code.
J'ai mis à jour pour refléter mon code. DOM version (jsfiddle.net/UZTnE/2) ne fonctionne plus; Ne peut pas obtenir JQM version de fonctionner. Le problème est différent.
Parce que vous avez cassé. Vous essayez de sélectionner
$("#field2")
où l'on n'existe pas.#field2
est à la recherche d'id="field2"
, pasname="field2"
. Essayez celui-ci: jsfiddle.net/UZTnE/3Je vois ce que tu veux dire; j'étais simplement en train d'essayer de mettre à jour le code pour représenter ce que je suis en train de réaliser et n'a pas remarqué que vous n'aviez pas prévu id en vous exemple. Je vais essayer de trouver le temps de fournir une bonne mise à jour qui montre le véritable erreur, mais comme je l'ai d'abord dit que je ne suis pas la seule personne à le signaler, et de multiples fixer des tentatives ont déjà été faites pour le github de la source de l'un des qui lorsqu'il est appliqué à la dernière version de la copie résout mon problème.
OriginalL'auteur Sparky
comme une réponse à cette vieille question, je fais comme cela pour obtenir la meassges à l'intérieur les règles d'objet.
Après avoir ajouté des règles, vous pouvez ajouter des messages comme ceci:
Bonne chance!
OriginalL'auteur Eagle_one