jquery.validate validant le champ désactivé

J’ai un menu déroulant dans un formulaire qui contrôle les champs qui seront activés / désactivés sur le formulaire à l’aide de .show () et .hide () de jQuery. Dans mes règles jquery.validate, j’ai tous les champs requirejs.

Voici à quoi ma règle jquery.validate ressemble

$("#new_course").validate({ ignore: ":disabled", rules: { "course_init_on": {required: true}, "mins_before": {required: true}, ..... 

Avec le code ci-dessus, il valide toujours le champ masqué et empêche la soumission du formulaire.

Ce que je peux voir, c’est que vous avez ajouté ignorer “: disabled”, ce qui est différent de “: hidden”

Je pense que vous devriez utiliser:

 $("#new_course").validate({ ignore: ":hidden", ... 

Si vous voulez vraiment désactiver les éléments de formulaire (que vous devriez probablement sinon, le navigateur publiera ces données), utilisez les éléments suivants:

 $("#elm").attr("disabled", "disabled"); 

Ensuite, le code ci-dessus fonctionnera parfaitement et vous ne posterez pas de données inutiles sur le serveur 🙂

Essayer:

 $("#new_course").validate({ ignore: ":hidden", rules: { "course_init_on": {required: true}, "mins_before": {required: true}, ..... 

Disabled n’est pas coché dans validate.js (codé en dur):

 elements: function() { var validator = this, rulesCache = {}; // select all valid inputs inside the form (no submit or reset buttons) return $(this.currentForm) .find("input, select, textarea") .not(":submit, :reset, :image, [disabled]"); } 

Vous devez utiliser l’atsortingbut readonly place