2013-02-24 5 views
7

sto usando jQuery a presentare le mie variabili di modulo, e nel tentativo di evitare che il modulo di presentare attraverso i modi consueti (fare clic su Invia pulsante o premere Invio su uno dei campi)Prevenire il modulo dall'invio tramite event.preventDefault(); non funziona

ho questo:

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

ma non sembra funzionare la mia forma è ancora sottopone, andando alla pagina process.php ..

+1

sicuro se questo è ancora un problema, ma ho avuto questo e non ho potuto risolverlo. Risulta che ho avuto un secondo modulo con lo stesso ID ... Silly me –

+2

il motivo per cui il codice precedente non funziona è perché non hai il parametro event come parte dell'argomento callback function(), dovrebbe essere la funzione (evento) – Madhur

+0

Forse si fa riferimento a un modulo prima che sia accessibile tramite DOM. Inserisci il codice nel callback 'onload', oltre a passare l'argomento' event' al callback per l'evento 'submit'. –

risposta

11

Se l'unica cosa che devi fare è quello di impedire l'azione di default, è possibile fornire false invece di una funzione:

$('#form').submit(false); 
+0

fantastico. cosi 'semplice. Grazie! – BrownChiLD

8

provare return false invece di event.preventDefault() o accettare event come parametro della funzione.

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

A partire da ora, né 'return false' né' event.preventDefault() 'funzionano. –

4

altro modo è:

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

    //some code here 

    return false; 
}); 
Non
+0

se è presente una richiesta $ .ajax nella funzione corpo retruning false non funziona. :( Qualsiasi altra soluzione alternativa? – ravi1991

+1

@ ravi1991 solo 'return false' subito dopo' $ .ajax() ' –