2015-11-18 6 views
0

Я использую скрипт javascript/ajax, чтобы предотвратить отправку формы и выдачу некоторых сообщений типа «ошибка!». или «успех!». Сценарий не работает. После отправки формы браузер переадресовывает пользователя в файл submit.php.Ajax prevent form submit

Это мой Ajax/Javascript:

$(function() { 

    // Kontakt-Formular in das Script laden 
    var form = $('#contact-form-edc'); 

    $(form).submit(function(e) { 
     // Den Weiterleitung stoppen 
     e.preventDefault(); 

     // Die Kontakt-Formular Daten in das Script laden 
     var formData = $(form).serialize(); 

     // Das Kontakt-Formular absenden 
     $.ajax({ 
      type: 'POST', 
      url: $(form).attr('action'), 
      data: formData 
     }) 

     .done(function(response) { 
      // Erfolgreiche Meldung 
    document.getElementById('success').style.display = ""; 
      document.getElementById('error').style.display = "none"; 

      // Das Kontakt-Formular leeren 
        $('input').val(''); 
      $('textarea').val(''); 
      $('.button').val('Abschicken') 
     }) 
     .fail(function(data) { 
      // Fehler Meldung 
     document.getElementById('error').style.display = ""; 
      document.getElementById('success').style.display ="none"; 
     }); 

    }); 

}); 
+1

изменить '$ (form) .submit' to' form.submit' –

+0

Может быть ошибка js. Проверьте консоль. Также вместо $ (form) попробуйте form.serialize() –

ответ

0

Проблема заключается в том, вы оборачивать свой элемент формы в другой объект Jquery. Попробуйте это:

$(function() { 

    // Kontakt-Formular in das Script laden 
    var form = $('#contact-form-edc'); 

    form.submit(function(e) { 
     // ... 
0

return false; будет делать то, что вы хотите, вы можете закодировать, как это ...

<form ... onsubmit='checkForm()'> 

и JS будет

function checkForm() 
    { 
    //your checks 
    .. 
    if(error) 
    { 
    return false; 
    }else 
    { 
    return true; 
    } 
} 

если вы делаете с JQuery убедитесь, что вы возвращаетесь false