web-dev-qa-db-fra.com

Comment supprimer la validation jQuery d'un formulaire?

J'utilise le plugin de validation jQuery pour valider un formulaire, et je voudrais supprimer la validation et soumettre le formulaire si un certain lien est cliqué.

Je soumets un formulaire avec javascript comme jQuery('form#listing').submit(), je dois donc supprimer les règles de validation/fonction avec javascript.

Le problème est que je ne peux pas comprendre comment procéder. J'ai essayé des choses comme jQuery('form#listing').validate({}); et jQuery('form#listing').validate = null, mais sans succès.

39
Ben Crouse

Déclenchez la méthode de soumission DOM pour ignorer la validation:

$("#listing")[0].submit();
68
Jörn Zaefferer

Vous pouvez supprimer les événements des nœuds avec nbind :

jQuery('form#listing').unbind('submit'); // remove all submit handlers of the form

Ce que vous recherchez probablement, c'est que le plug-in de validation peut également se désaffecter de l'événement de soumission:

jQuery('form#listing').validate({
   onsubmit : false
});

Pour les deux, vous devriez être en mesure de poursuivre avec un appel à .submit() pour envoyer le formulaire:

jQuery('form#listing').unbind('submit').submit();
34
Borgar
var form = $('#my_form_id').get(0);
$.removeData(form,'validator');

Fonctionne vraiment.

19
Gaurav Jain

Vous pouvez ajouter une classe css d'annulation à un élément (bouton, entrée) afin qu'il ignore la validation

7
redsquare

Vous pouvez également utiliser la fonction publique "règles" de cette manière:

$('input, select, textarea').each(function() {
    $(this).rules('remove');
});

C'est ce que j'utilise;)

7
Christophe Deliens

Je n'ai trouvé aucun autre moyen utile si vous vouliez activer/désactiver la validation de vos formulaires (par exemple, une validation différente pour les types de paiement ...)

Ce que j'ai dû faire (ce n'est pas une bonne solution mais ça marche)

Configurez votre validation:

jQuery('#form').validate();

Désactiver le formulaire:

jQuery('#form').validate().currentForm = '';

Réactiver le formulaire:

jQuery('#form').validate().currentForm = jQuery('#form')[0];
6
alby

Cela semble fonctionner pour moi maintenant:

var form = $('#my_form_id').get(0);
$(form).removeData('validate');
5
kenitech
$("#formName").validate().settings.ignore = "*";

Se référer: https://github.com/jzaefferer/jquery-validation/issues/725

4
Veena Lalwani

J'ai récemment mis à niveau vers 1.5.5 le script de validation de Jörn et la fonction removeValidator est obsolète.


...
jQuery.extend(
          jQuery.fn, 
          {
          removeValidator: function(){
              this.unbind();
              jQuery.removeData(this[0], 'validator'); 
          }
...
2
kenitech

Pour toutes les balises d'entrée du formulaire:

$('#myform').validate().settings.ignore = '.valid';
$('input').addClass('valid');

Ça marche pour moi.

1
user2543317