2013-08-31 15 views
56

Mam problem z .on(). Mam wiele elementów formularza (formularze z class="remember"), również dodaję inny form.remember przy użyciu AJAX. Tak, chcę go obsługiwać złożyć coś zdarzeń takich jak:Jquery .on() zgłoszenie zdarzenia

$('form.remember').on('submit',function(){...}) 

ale tworzą dodaje AJAX nie działa z nim.

Gdzie jest problem? Czy to błąd?

+9

Spróbuj '$ (document) .Na ('submit', 'form.remember', function() {...})' – Sergio

Odpowiedz

131

Trzeba przekazać zdarzenie na poziomie dokumentu

$(document).on('submit','form.remember',function(){ 
    // code 
}); 

$('form.remember').on('submit' pracę tak samo jak $('form.remember').submit( ale podczas korzystania $(document).on('submit','form.remember' następnie będzie również pracować dla DOM dodane później.

+16

Również pamiętać, że '$ (document) .on' ma znacznie niższą wydajność niż' $ ("form.remember"). on ('submit''. Teraz musi nasłuchiwać ** all ** zgłaszać zdarzenia w dokumencie. aby ograniczyć zakres nieco niż słuchać 'włączonego'' dokumentu', jeśli to możliwe, – Liam

+2

$ ('body'). on ('submit', 'form.remember', function() { // kod }); mój problem –

12

Miałem problem z tymi samymi symtami. W moim przypadku okazało się, że moja funkcja przesyłania nie zawierała instrukcji "return".

Na przykład:

$("#id_form").on("submit", function(){ 
    //Code: Action (like ajax...) 
    return false; 
}) 
+0

Miałem podobny problem, I miał dwie lub więcej form, a każda forma musiałem wykonać jakąś akcję AJAX. Po kliknięciu przycisku "enter" akcja Ajax nie była nazywana –

+0

Ok. Edytuję odpowiedź. Myślę, że mój cel był dobry, jednak sposobem na pokazanie tego nie było. Dzięki –

Powiązane problemy