La définition dynamique de règles/les messages d'objets pour jQuery plugin de validation
Je suis sûr qu'il ya une meilleure façon de mettre en œuvre cette mais peut pas le comprendre. J'ai un formulaire qui a plus de 2 champs d'en haut qui sont toujours nécessaires. J'ai ensuite une série d'onglets qui charge dans les différents domaines lorsqu'il est sélectionné (séparer les morceaux de HTML de chargement, de sorte que seul ce qui est actuellement dans le DOM est présentée lorsque le formulaire soumet). J'utilise le plugin jquery validation ( http://docs.jquery.com/Plugins/Validation ) qui permet de définir les règles de validation/messages comme un objet lors de chaque ensemble de nouveaux champs de charges, à supprimer des règles redondantes et en ajouter de nouvelles, comme les champs de changement. Le problème est que les règles/les messages de tous les objets doivent être écrites dans le js pour l'utiliser quand il le faut et le fichier est long, et ça semble très inefficace. Voici mon pseudo:
<form>
<input1 (always on page) />
<input2 (always on page) />
<ul id="nav-tabs">
<li id="tab1"></li>
<li id="tab2"></li>
<li id="tab3"></li>
</ul>
<div id="dynamic-content">
<!-- different form fields load in here from separate html files, all requiring different rules in addition to the 2 fields always on the page -->
</div>
<input type="submit" />
</form>
Je pense, il pourrait y avoir une solution avec le chargement dans les règles avec chaque morceau de HTML que c'est réglé? Quelqu'un a fait quelque chose comme cela?
Merci à tous ceux qui peuvent aider.
T
- Pouvez-vous partager votre javascript que vous souhaitez de l'aide avec? Et la création d'un jsfiddle de certains de votre formulaire de test pourrait aider à obtenir quelques bonnes réponses trop.
- "Le problème est que les règles/les messages de tous les objets doivent être écrites dans le js" Cette phrase est confuse moi. Tout doit être écrit dans le js, pourquoi configurations pour la validation en être autrement?
- Vous avez reçu quelques bonnes réponses... avez-vous une réponse?
Vous devez vous connecter pour publier un commentaire.
Utiliser le haut-
rules()
méthode pour ajouter des règles. Voir la documentation.Remarque: Vous doit appeler cette méthode après vous appelez
.validate()
.jsFiddle DÉMO
La suite de la combiner avec d'personnalisée
messages:
. Notez que le format est légèrement différente que lors de l'ajout de règles comme options dans.validate()
...Cette méthode peut également être très utile lorsque vous êtes à ajouter dynamiquement des champs de votre formulaire.
jsFiddle Démo:
http://jsfiddle.net/kSFKE/10/
Il n'est pas nécessaire d'utiliser
remove
de supprimer des règles si vous êtes de manière dynamique en détruisant les inutiles champ entrées.Il y a un
rules()
méthode qui aadd
etremove
sous méthodes pour la dynamique des changements à la règlehttp://docs.jquery.com/Plugins/Validation/rules#.22add.22rules
Exemple(à partir de docs):
Beaucoup de gens ne se rendent pas compte de la simplicité de classes sur les champs aussi.
Pour compliqué les règles que vous pouvez utiliser un booléen dans les règles de l'objet , de la même règle, le nom utilisé comme une classe d'enregistrer automatiquement le champ. En va de même pour toutes les méthodes que vous créez.
Vous pouvez également envisager d'utiliser
data-
attributs pour aider à modifier les règles lors de l'ajout/suppression d'éléments. Peut en boucle sur de nouveaux ou d'anciens éléments et d'utiliser ledata-
attributs à analyser dans lerules()
méthodeSi c'est juste une simple validation vous avez besoin, vous pouvez simplement utiliser le
class
l'attribut de chaqueinput
pour la valider.HTML
Javascript
Démo
Il a été demandé comment appliquer dynamiquement des règles;
Puis dans l'en-tête de la page