22 Voix

jQuery: Annuler event.preventDefault()

Question de SmartUser | 13/10/2020 à 22:00

Dans un formulaire de soumission (submit form) sur mon site Web, j'utilise jQuery avec event.preventDefault. Cependant, j'autoriserais à nouveau, selon les circonstances,  que le formulaire puisse être soumis.

Par conséquent, est-il possible d'une manière de reprendre un preventDefault()?

RépondrePositifNégatifDateVoix
11 Vote

La fonction que vous recherchez est appelée unbind().

Voici un petit exemple:

$("#myform").submit(function(event) {
    event.preventDefault();
    // ...
});
 
// ...
 
$("#myform").unbind('submit');

Tout d'abord, nous évitons d'utiliser event.preventDefault(), que le formulaire puisse être soumis, si nous cliquons sur le bouton soumettre.

Ensuite, nous reprenons cela avec unbind('submit') et cela fonctionne comme avant. Unbind garantit qu'un gestionnaire d'événements préaffecté est annulé. Dans l'exemple, nous définissons avec 'submit' le type du gestionnaire d'événements à supprimer. Si vous omettez ceci et écrivez $("#myform").unbind() à la place, vous supprimerez tous les gestionnaires d'événements affectés du formulaire.
14/10/2020 à 20:55

RépondrePositif Négatif
11 Vote

Et voici une autre façon avec le même effet:

var eventhandler = function(e) {
   e.preventDefault();      
}
      
$("#myform").bind('submit', eventhandler);
  
//...
  
$("#myform").unbind('submit', eventhandler);

Cela devrait également clarifier la différence entre bind() et unbind(). Nous utilisons bind() pour assigner un gestionnaire d'événements et avec unbind(), nous le supprimons à nouveau. Nous avons précédemment défini le gestionnaire d'événements (event handler) comme une variable, à laquelle la fonction preventDefault a été attribuée.
15/10/2020 à 22:19

RépondrePositif Négatif
Répondre

Sujets Connexes

Avis Important

Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.

Participer

Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.