Par défaut, Zend_Form crée un champ de saisie masqué pour chaque entrée de case à cocher dans le formulaire. Ces entrées partagent le même nom.Jquery Validation Nom du plugin Conflit avec Zend_Form
<input type="hidden" name="zend-cb" value="">
<input type="checkbox" name="zend-cb" id="zend-cb" value="1">
Je veux exiger la case à cocher, donc je mis en place la règle suivante dans mon plugin jquery validateur (http://bassistance.de/jquery-plugins/):
'zend-cb': {
required: true
}
Malheureusement, le plugin de validation Jquery valide toujours le champ caché au lieu de la case à cocher. Est-ce qu'il y a une façon que je peux avoir pour valider la case à cocher à la place? Je me rends compte que je pourrais changer mon Zend Decorator pour omettre le champ caché, mais j'aimerais trouver une solution javascript pure. sont nécessaires
Solution
Deux étapes pour contourner ce problème.
1) Ajouter ignore: "input [type = hidden]" en option à la méthode de validation.
$('#myForm').validate({
ignore: "input[type=hidden]",
rules: { ... }
}
2) jquery.validate.js ouvertes et mettre à jour la méthode de FindByName d'utiliser le filtre ignorer. Rapport de bogue déposé par adamnfish sur le site du plugin jquery.
findByName does not honour ignore settings
findByName: function(name) {
// select by name and filter by form for performance over form.find("[name=...]")
var form = this.currentForm;
return $(document.getElementsByName(name)).not(this.settings.ignore).map(function(index, element) {
return element.form == form && element.name == name && element || null;
});
},
wow solution facile. en quelque sorte j'ai raté cette option. j'apprécie énormément! – Chris
En fait, cela ne semble pas résoudre complètement le problème. J'étudie un correctif intitulé "findByName n'honore pas les paramètres ignorer", trouvé ici: http://plugins.jquery.com/node/9234 – Chris
Votre correctif en combinaison avec le correctif sur le rapport de bug semble résoudre le problème. Merci! – Chris