$.post nie działa przy pierwszym użyciu.

0

Mam taki kod:

 $("#config_form").submit(function(){
 $.post("/costam", $("#config_form").serialize(), function(data) {
 if(data.result == 'success')
 {
 $('h4.alert_success').show('slow');
 }
 else
 { 
 $('h4.alert_error').show('slow');
 }
 }, "json");
 });

Jednak kiedy na stronie użyję submit'a formularz zostaje wysłany jak normalny formularz html, dopiero za drugim i każdym następnym razem przechodzi przez jQuery.
Próbowałem ustawić action na:

action=""
action="/"
action="#"

ale bez zmian.

0

A jakim cudem docierasz do drugiego i trzeciego razu, skoro już za pierwszym formularz jest wysyłany, a więc strona się przeładowuje, czyli (z punktu widzenia JavaScriptu) lecisz od nowa...?

0

Nie jestem pewien, ale możesz spróbować:

 $("#config_form").submit(function(){
 $.post("/costam", $("#config_form").serialize(), function(data) {
 if(data.result == 'success')
 {
 $('h4.alert_success').show('slow');
 }
 else
 { 
 $('h4.alert_error').show('slow');
 }
 }, "json");
return false;
 });
0
bswierczynski napisał(a)

A jakim cudem docierasz do drugiego i trzeciego razu, skoro już za pierwszym formularz jest wysyłany, a więc strona się przeładowuje, czyli (z punktu widzenia JavaScriptu) lecisz od nowa...?

Opisałem tylko jak się objawia problem, gdybym go rozumiał nie zakładał bym wątku ;) (jedyna różnica, za wyjątkiem pierwszego, w każdym kolejnym odświeżeniu przesyłane są dane z formularza)

@Patryk27
Masz rację, z tym że return false musiałem dać za $.post(). Domyślam się, że javascript przechwytuje tylko dane z formularza i zwraca wynik do html'a - zwróci true: html kontynuuje, false: przerwanie.
Dzięki za podpowiedź wszystko działa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1