2011-10-16 14 views
8

Mam przycisk: Javascript: Jak przejąć typ danych = przesłać po kliknięciu?

Ilekroć klikam na nim, przesyła on do formularza.

Chcę przejąć to zachowanie, więc po kliknięciu wywołuje funkcję JS. Jak mam to zrobic? Dodałem:

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

Problem polega na tym, że nadal jest on przesyłany do formularza. Kiedy usuwam "type =" submit ", to działa.

Nie chcę usuwać kodu HTML, a także wiązać z CSS, i nie chcę zmieniać CSS, ponieważ boję się od brudząc go =)

więc pytanie brzmi: w jaki sposób, aby zamiast zmienić zachowanie przycisku złożyć tak, aby nie poddać się tworzyć, ale wywołuje mój funkcji JavaScript (jQuery)

+1

Ups, ja po prostu sobie sprawę, że potrzebna jest „return false” w mojej funkcji addFoods, w przeciwnym razie wywołuje funkcję i przedkłada go do formy. Problem rozwiązany! Off to bed =) –

+2

Hisoka: odpowiedź na twoje pytanie jest w porządku. –

Odpowiedz

14

docelowy kształt, a nie przesłać przycisk

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

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

    // do things 
}); 
+3

To rozwiązanie było przestarzałe w Jquery 1.7 – cromanelli

10

Tylko dla zachowania tej odpowiedzi zaktualizowano zmianę:

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

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

// do things 

});

z:

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

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

// do things 

});

$ (selector) .live() został uznany za przestarzały w Jquery 1.7 i usunięty z frameworku w Jquery 1.9.

Here's się documentation

Powiązane problemy