sirve que prevent para hace event disable cancel javascript jquery preventdefault

javascript - que - ¿Qué es lo opuesto a evt.preventDefault();



preventdefault submit (13)

Esto es lo que solía establecer:

$("body").on(''touchmove'', function(e){ e.preventDefault(); });

Y para deshacerlo:

$("body").unbind("touchmove");

Una vez que haya evt.preventDefault() , ¿cómo puedo reanudar las acciones predeterminadas nuevamente?


He usado el siguiente código. Funciona bien para mí.

$(''a'').bind(''click'', function(e) { e.stopPropagation(); });


OKAY ! funciona para el evento 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 ! });


Para procesar un comando antes de continuar un enlace desde un evento de click en jQuery:

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

Prevenir y seguir con 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"); } });

O simplemente ejecute window.location = this.href; después de preventDefault();


Según lo comentó @Prescott, lo contrario de:

evt.preventDefault();

Podría ser:

Esencialmente equiparar a ''do default'' , ya que ya no lo estamos previniendo.

De lo contrario, me inclino a señalarte las respuestas proporcionadas por otros comentarios y respuestas:

¿Cómo desvincular un oyente que está llamando a event.preventDefault () (usando jQuery)?

Cómo volver a habilitar event.preventDefault?

Tenga en cuenta que el segundo ha sido aceptado con una solución de ejemplo, dado por redsquare (publicado aquí para una solución directa en caso de que no se cierre como duplicado):

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


Siempre puede usar esto adjunto a algún evento de clic en su secuencia de comandos:

location.href = this.href;

ejemplo de uso es:

jQuery(''a'').click(function(e) { location.href = this.href; });


Sugeriría el siguiente patrón:

document.getElementById("foo").onsubmit = function(e) { if (document.getElementById("test").value == "test") { return true; } else { e.preventDefault(); } } <form id="foo"> <input id="test"/> <input type="submit"/> </form>

... a menos que me esté perdiendo algo.

http://jsfiddle.net/DdvcX/


Supongo que lo "opuesto" sería simular un evento. Podría usar .createEvent()

Siguiendo el ejemplo de Mozilla:

function simulateClick() { var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); var cb = document.getElementById("checkbox"); var canceled = !cb.dispatchEvent(evt); if(canceled) { // A handler called preventDefault alert("canceled"); } else { // None of the handlers called preventDefault alert("not canceled"); } }

Ref: document.createEvent

jQuery tiene .trigger() para que pueda desencadenar eventos en elementos, a veces útiles.

$(''#foo'').bind(''click'', function() { alert($(this).text()); }); $(''#foo'').trigger(''click'');


Tuve que retrasar el envío de un formulario en jQuery para poder ejecutar una llamada asíncrona. Aquí está el código simplificado ...

$("$theform").submit(function(e) { e.preventDefault(); var $this = $(this); $.ajax(''/path/to/script.php'', { type: "POST", data: { value: $("#input_control").val() } }).done(function(response) { $this.unbind(''submit'').submit(); }); });


este código me funcionó para volver a crear instancias del evento después de haberlo utilizado:

event.preventDefault(); to disable the event. event.preventDefault = false;


jquery on() podría ser otra solución a esto. escpacialmente cuando se trata del uso de namespaces de namespaces .

jquery on () es simplemente la forma actual de vincular eventos (en lugar de bind ()). off () es desvincularlos. y cuando usa un espacio de nombres, puede agregar y eliminar múltiples eventos diferentes.

$( selector ).on("submit.my-namespace", function( event ) { //prevent the event event.preventDefault(); //cache the selector var $this = $(this); if ( my_condition_is_true ) { //when ''my_condition_is_true'' is met, the binding is removed and the event is triggered again. $this.off("submit.my-namespace").trigger("submit"); } });

ahora con el uso del espacio de nombres, puede agregar varios de estos eventos y puede eliminarlos, según sus necesidades ... mientras que el envío puede no ser el mejor ejemplo, esto puede ser útil en un clic o pulsación de tecla o lo que sea ..


puedes usar esto luego del método "prevenir predeterminado"

// Aquí evt.target devuelve un evento predeterminado (p. Ej., Url de defunción, etc.)

var defaultEvent=evt.target;

// Aquí guardamos el evento predeterminado ...

if("true") { //activate default event.. location.href(defaultEvent); }


function(evt) {evt.preventDefault();}

y su opuesto

function(evt) {return true;}

¡aclamaciones!