2012-01-12 4 views
6

Ho il seguente pulsante di invio:event.preventDefault() che lavorano in Chrome, Firefox non per un pulsante di invio

<input type="submit" name="submit" value="Send" class="mybutton" /> 

Quando uso il seguente codice

$(document).ready(function(){ 
     $("#submit").submit(function(){ 
       event.preventDefault(); 
       console.log('test'); 
     } 
}); 

La mia pagina è rinfrescante in Firefox, ma non Chrome. Qualcuno può indicarmi la giusta direzione?

Vorrei utilizzare il pulsante di invio per un jQuery .ajax chiamata (non una forma regolare presentare)

risposta

18

È necessario assicurarsi che si aggiunge event alla lista dei parametri della funzione dell'evento. Penso che alcuni browser abbiano uno event globale, per questo funziona con alcuni browser.

$(document).ready(function(){ 
    $("#submit").submit(function(event){ // The event is passed to this function 
     event.preventDefault(); 
     console.log('test'); 
    } 
}); 
+0

+1 L'unica risposta che pone 'event' al luogo corretto: p –

+1

Grandi menti ... Sono piuttosto nuovo nella codifica. L'evento dovrebbe essere passato su submit, non su doc ​​ready, corretto? – dyelawn

+4

L'oggetto globale 'event' (' window.event') era una cosa di Microsoft. Chrome lancia un osso per codificare quello che è stato scritto per IE. Firefox no. :-) –

0

Non è stato aggiunto l'evento ai parametri della funzione.
versione fissa:

$(document).ready(function(){ 
     $("#submit").submit(function(event){ 
       event.preventDefault(); 
       console.log('test'); 
     } 
}); 
+1

Hai inserito l'evento 'nella funzione sbagliata. :-P –

+0

@Rocket, già pronto, Grazie, ho visto che non ero l'unico, Ha copiato da me ... =) lol – gdoron

3

passare il parametro evento nella funzione di callback Prova questa

$(document).ready(function(){ 
     $("#submit").submit(function(event){ 
       event.preventDefault(); 
       console.log('test'); 
     } 
}); 
+1

Hai messo l'evento nella funzione sbagliata. :-P –

+0

@Rocket - Risolto il problema di rimuovere il downvote? – ShankarSangoli

+0

Non ti ho minimizzato. –

7

Hai provato passando attraverso l'evento come una variabile?

$(document).ready(function(){ 
    $("#submit").submit(function(e){ 
      e.preventDefault(); 
      console.log('test'); 
    } 
}); 
+3

Questa risposta ha il mio voto per utilizzare un nome di variabile diverso da evento, per mostrare che non è proprio necessario chiamarlo evento. – Dismissile

+0

@Dismissile: d'accordo, puoi chiamarlo come preferisci :) –

1

semplicemente nella funzione OnClick per il pulsante di invio annotare come questo

onclick="return myfunction();" 

e dentro le dichiarazioni di funzione

myfunction() { 
return false;}; 
Problemi correlati