Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ HTML \ XHTML _ Brak wartości atrybutu action

Napisany przez: szymo02 20.01.2017, 18:48:00

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:

  1. <http://december.com/html/4/element/form.html onSubmit="ajax_form();">
  2. Imie i nazwisko<http://december.com/html/4/element/br.html/>
  3. <http://december.com/html/4/element/input.html type="text" name="name" size="40"><http://december.com/html/4/element/br.html/>
  4.  
  5. Email<http://december.com/html/4/element/br.html/>
  6. <http://december.com/html/4/element/input.html type="text" name="email" size="40"><http://december.com/html/4/element/br.html/>
  7.  
  8. Wiadomość<http://december.com/html/4/element/br.html/>
  9. <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/>
  10. <http://december.com/html/4/element/input.html type="submit" value="Wyślij!" class="btn btn-red">
  11. </http://december.com/html/4/element/form.html>

Napisany przez: trueblue 20.01.2017, 18:57:39

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.

Napisany przez: szymo02 20.01.2017, 18:59:04

  1. function ajax_form() {
  2. $.ajax({
  3. type : "POST",
  4. url : "mail.php",
  5. data : {
  6. name: form_name,
  7. email: form_email,
  8. message: form_message
  9. },
  10. success: function(ret) {
  11. alert('success');
  12. },
  13. complete: function() {
  14. alert('complete');
  15. },
  16. error: function(jqXHR, errorText, errorThrown) {
  17. alert('error: ' + errorText);
  18. }
  19. });
  20. }


Oto on. Dodatkowo, otrzymuję komunikat success, więc kod jset raczej ok

Napisany przez: viking 20.01.2017, 19:13:17

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().

Napisany przez: szymo02 20.01.2017, 19:24:24

Pomogło, dzięki smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)