Cześć,
Stworzyłem sobie prosty formularz kontaktowy który wysyła wiadomość na maila. Jednak gdy wartość action ustawię pustą, to strona jest przewijana na samą górę. Chciałbym, aby po zatwierdzeniu wykonywała się tylko funkcja z ajaxem. Kod:
<http://december.com/html/4/element/form.html onSubmit="ajax_form();"> Imie i nazwisko<http://december.com/html/4/element/br.html/> <http://december.com/html/4/element/input.html type="text" name="name" size="40"><http://december.com/html/4/element/br.html/> Email<http://december.com/html/4/element/br.html/> <http://december.com/html/4/element/input.html type="text" name="email" size="40"><http://december.com/html/4/element/br.html/> Wiadomość<http://december.com/html/4/element/br.html/> <http://december.com/html/4/element/textarea.html name="message" rows="10" cols="60"></http://december.com/html/4/element/textarea.html><http://december.com/html/4/element/br.html/> <http://december.com/html/4/element/input.html type="submit" value="Wyślij!" class="btn btn-red"> </http://december.com/html/4/element/form.html>
Może Twoja funkcja ajax_form próbuje odczytać wartość atrybutu action, ale kiedy jego brak skrypt przerywa działanie, formularz nie jest wysyłany poprzez ajax a cała strona po prostu się przeładowuje.
Szkoda, że nie pokazałeś zawartości funkcji ajax_form.
function ajax_form() { $.ajax({ type : "POST", url : "mail.php", data : { name: form_name, email: form_email, message: form_message }, success: function(ret) { alert('success'); }, complete: function() { alert('complete'); }, error: function(jqXHR, errorText, errorThrown) { alert('error: ' + errorText); } }); }
To że dodałeś funkcję na onSubmitnie oznacza że form nie jest normalnie wysłany. W funkcji return true/false a najlepiej przypnij zdarzenie submit poprzez on() i e.preventDefault().
Pomogło, dzięki
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)