246 votes

Quel est le contraire de evt.preventDefault() ;

Une fois que j'ai tiré un evt.preventDefault() Comment puis-je reprendre les actions par défaut ?

3 votes

Je pense que, typiquement, votre fonction s'exécuterait et ensuite le comportement par défaut s'exécuterait, donc vous n'appelleriez jamais evt.preventDefault() en premier lieu.

0 votes

Pouvez-vous nous donner un exemple de ce que vous essayez de faire ?

1 votes

105voto

Grant Thomas Points 28280

Comme commenté par @Prescott, le contraire de :

evt.preventDefault();

Ça pourrait l'être :

Ce qui équivaut essentiellement à "faire défaut puisque nous ne l'empêchons plus.

Sinon, je suis enclin à vous orienter vers les réponses fournies par un autre commentaire et réponses :

Comment délier un écouteur qui appelle event.preventDefault() (en utilisant jQuery) ?

Comment réactiver event.preventDefault ?

Notez que le second a été accepté avec un exemple de solution, donné par redsquare (posté ici pour une solution directe au cas où ceci ne serait pas fermé comme duplicata) :

$('form').submit( function(ev) {
     ev.preventDefault();
     //later you decide you want to submit
     $(this).unbind('submit').submit()
});

0 votes

Merci ! Je me suis gratté la tête pendant un moment à ce sujet (j'avais besoin de m'arrêter et de vérifier certaines choses avant l'envoi d'un formulaire, qui n'était pas envoyé dans certaines circonstances, mais l'était dans d'autres).

1 votes

Cela fonctionne, mais je ne comprends pas pourquoi le prochain formulaire à soumettre appelle à nouveau la fonction, je pensais que cela la dissocierait définitivement, mais il semble qu'elle ne se dissocie que pour l'appel actuel... Je ne peux pas l'expliquer, il fait exactement ce que je veux mais ce n'est pas ce que j'attendais.

0 votes

$(this).unbind('submit').submit() est une bonne chose, mais que se passerait-il si l'événement était contextmenu ? Il n'est pas possible d'initier à nouveau ce processus.

52voto

foxybagga Points 1345
function(evt) {evt.preventDefault();}

et son opposé

function(evt) {return true;}

Santé !

9 votes

Cela a fonctionné pour moi, mais je me demande si quelqu'un peut expliquer un peu mieux pourquoi ?

36 votes

Cela n'annule pas preventDefault(), en fait cela fait la même chose que si vous omettez l'option return true : rien.

30voto

Bradley Flood Points 652

Pour traiter une commande avant de continuer un lien à partir d'une click dans jQuery :

Eg : <a href="http://google.com/" class="myevent">Click me</a>

Prévenir et suivre avec jQuery :

$('a.myevent').click(function(event) {
    event.preventDefault();

    // Do my commands
    if( myEventThingFirst() )
    {
      // then redirect to original location
      window.location = this.href;
    }
    else
    {
      alert("Couldn't do my thing first");
    }
});

Ou simplement exécuter window.location = this.href; après le preventDefault();

3 votes

D'accord, mais cela suppose que le preventDefault est un lien, et non pas un touchmove sur le corps du document.

8 votes

Ce n'est pas ce que la question demandait.

5 votes

Je sais que cela ne répond pas directement à la question, mais je suis content que @Bradley ait répondu car cela a résolu mon problème :)

17voto

SNS Web Points 99

OK ! cela fonctionne pour l'évènement click :

$("#submit").click(function(e){ 

   e.preventDefault();

  -> block the click of the sumbit ... do what you want

$("#submit").unbind('click').click(); // the html click submit work now !

});

0 votes

Merci ! Exactement ce que je cherchais. Faire en sorte que l'événement de clic soit à nouveau cliqué après avoir effectué une validation entre-temps.

15voto

user10625817 Points 101
event.preventDefault(); //or event.returnValue = false;

et son contraire (standard) :

event.returnValue = true;

source : https://developer.mozilla.org/en-US/docs/Web/API/Event/returnValue

1 votes

C'est génial mais ce n'est pas supporté par firefox

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X