2011-10-16 9 views
8

Ho un pulsante: Javascript: Come dirottare il tipo di input = invia sul comportamento del clic?

Ogni volta che clicco su di esso, si invia a un modulo.

Voglio dirottare questo comportamento, quindi quando clicco, chiama invece una funzione JS. Come faccio a fare questo? Ho aggiunto:

$('input.submit').live('click', addFood); 

Il problema è che viene ancora inoltrato al modulo. Quando rimuovo "type =" submit ", funziona

Non voglio rimuovere il codice HTML, è anche legato al CSS e non voglio cambiare CSS perché ho paura di rovinare l'alto =)

così domanda è: come fare per cambiare il comportamento del pulsante di invio in modo da non sottoporre a formare ma chiede la mia funzione Javascript (JQuery)

+1

Ops, ho solo capito che avevo bisogno di un "return false" nella mia funzione addFoods, altrimenti si chiama la funzione e lo invia al form. Problema risolto! Off to bed =) –

+2

Hisoka: è ok per rispondere alla tua stessa domanda. –

risposta

14

target forma, invece, non è il pulsante di invio

$("form").submit(function(e) { 

    e.preventDefault(); 
    e.returnValue = false; 

    // do things 
}); 
+3

Questa soluzione è stata ritirata in Jquery 1.7 – cromanelli

10

Solo per il gusto di mantenere questa risposta cambiamento aggiornamento:

$("form").live('submit', function(e) { 

e.preventDefault(); 
e.returnValue = false; 

// do things 

});

con:

$("form").on('submit', function(e) { 

e.preventDefault(); 
e.returnValue = false; 

// do things 

});

$ (selector) .live() è stato deprecato in Jquery 1.7 e rimosso dal framework in Jquery 1.9.

Here's le documentation

Problemi correlati