ti-enxame.com

Impedir o envio do formulário via event.preventDefault (); não está funcionando

Estou usando o jQuery para enviar minhas variáveis ​​de formulário e estou tentando impedir que o formulário seja enviado da maneira usual (clique no botão Enviar ou pressione Enter em um dos campos)

eu tenho isto:

$('#form').submit(function(){
    event.preventDefault();
});

mas parece não funcionar, meu formulário ainda está sendo enviado, indo para a página process.php ..

11
BrownChiLD

Se a única coisa que você precisa fazer é impedir a ação padrão, você pode fornecer false em vez de uma função:

$('#form').submit(false);
15
steveukx

tente return false em vez de event.preventDefault() ou aceite event como um parâmetro da sua função.

$('#form').submit(function(event){
  event.preventDefault();
});

Não sei por que algumas pessoas pensam que isso não funciona mais, mas aqui está um exemplo mostrando que ainda funciona.

https://jsfiddle.net/138z5atq/

Comente o manipulador de eventos e ele alertará.

Em relação a stopPropagation() e stopImmediatePropagation() eles não impedem o envio do formulário. Eles apenas impedem que o evento borbulhe no dom.

8
Rob

Outra maneira é:

$('#form').submit(function(){

   //some code here

   return false;
});
6
dr.dimitru

Não consegui que as respostas postadas funcionassem, e apenas fornecer falso não era uma opção para mim. Eu achei que isso funcionava:

$(document).on('submit', '#form', function(event){
    event.preventDefault();
});
3
JavaJudt