11 Voto

jQuery: Deshacer event.preventDefault()

Pregunta de SmartUser | 12/10/2020 a las 15:19

En un formulario de envío (submit form) en mi sitio web, uso jQuery con event.preventDefault. Sin embargo, permitiría más tarde, dependiendo de las circunstancias, que se pueda enviar el formulario.

Por lo tanto, ¿es posible de alguna manera recuperar un preventDefault()?

ResponderPositivoNegativoFechaVotos
22 Votos

La función que está buscando se llama unbind().

He aquí un pequeño ejemplo:

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

Primero, evitamos usar event.preventDefault(), que el formulario se puede enviar, si hacemos clic en el botón enviar.

Luego, retiramos esto con unbind('submit') y funciona como antes. Unbind asegura que se cancele un controlador de eventos preasignado. En el ejemplo, definimos con 'submit' el tipo de controlador de eventos que se eliminará. Si omite esto y escribe $("#myform").unbind() en su lugar, eliminará todos los controladores de eventos asignados del formulario.
12/10/2020 a las 18:54

ResponderPositivo Negativo
11 Voto

Y aquí hay otra forma con el mismo efecto:

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

Esto también debería aclarar la diferencia entre bind() y unbind(). Estamos usando bind() para asignar un controlador de eventos y con unbind() lo quitamos nuevamente. Hemos definido el controlador de eventos (event handler) como una variable antes, a la que se le ha asignado la función preventDefault.
12/10/2020 a las 21:58

ResponderPositivo Negativo
Responder

Temas Relacionados

jQuery: ¿Hay un Elemento?

Consejo | 1 Comentario

jQuery: Mostrar y Ocultar Elementos

Tutorial | 0 Comentarios

Aviso Importante

Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.

Participar

Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.