2013-03-29 2 views
0

Я использую Jquery validate plugin in для проверки формы, все в порядке с проверкой моей проблемы в функции submitHandler, которую по какой-то причине я не получаю, не отправляет форму на моя почта, я проверил php и полностью в порядке. Это файл того, что im делает больше полных http://jsfiddle.net/KszmV/jquery validate не отправляет форму

Другое, что мне нужно сделать, и я не знаю, как это сделать. Как отправить форму без повторной загрузки страницы и отображения сообщения в конце формы

это мой сценарий

<script type="text/javascript"> 
    $(document).ready(function(){ 

     $("#contactusform1").validate({ 
      rules: { 
       "name": { 
        required: true, 
        minlength: 3 
       }, 
       "phone":{ 
        required:true, 
        digits:true 
       }, 
       "email":{ 
        required: true 
       } 

      }, 
      messages: { 
       "name": { 
        required: "Please enter a name" 
       }, 
       "phone":{ 
        required: "Please provide a contact number" 
       }, 
       "email":{ 
        required: "Enter a valid email" 
       } 
      }, 
      errorPlacement: function(error, element) { 
       error.insertAfter(element); 
      }, 

      submitHandler: function (form) {  

       $.ajax({ 
        type: 'POST', 
        data: $('form').serialize(), 
        url: 'process-contact1.php', 
        success: function() { 

        }       

       }); 

       form.submit(); 
      }   

     }); 

    }); 
</script> 
+0

Почему вы вызываете '$ .ajax()' и 'form.submit()'? – Barmar

+1

[JQuery Form Plugin] (http://www.malsup.com/jquery/form/#api) полезен для отправки формы без перезагрузки страницы. – Barmar

+0

Я знаю, что использовать form.submit неправильно, когда u использовать $ .ajax(), теперь, если я выберу форму. Получите форму, которая не очистит поля (сброс), как я могу это сделать? и даже делая это, я пробовал, и данные не получаются в любом случае. ... заблаговременно – paoloi

ответ

1

у вас есть несколько вопросов

submitHandler: function (form) {  
    $.ajax({ 
     type: 'POST', 
     data: $(form).serialize(), // $(form) is ok here 
     url: 'process-contact1.php', 
     success: function() { 
     }       
    }); 
    form.submit(); //<-- REMOVE this 
    return false; //<-- ADD this 
} 

DEMO: http://jsfiddle.net/Y8cHm/

  • удалить form.submit(), так как плагин уже обрабатывает это.

  • вам нужно return false в пределах submitHandler, так как вы делаете ajax, или вы получите нормальное обновление для отправки/страницы.

  • Your jsFiddle не был удален </form> тег.

  • Your jsFiddle было ссылки на плагина gitHub page вместо the CDN.

  • $(form).serialize() вполне приемлемо, как показано выше, в работе демо. С котировками $('form') просто нацеливает любые <form> на страницу. В то время как $(form) нацелен на тот же элемент формы, который уже передан в вашу функцию .validate(). В вашей демонстрации оба они дают одинаковый результат, хотя это может быть недействительным для всех других ситуаций.

+0

ty для ответа, как всегда, я сделал то, что сказал, и форма еще не дошла до почты, никаких идей, я проверил свой php, и это нормально, если это нужно, я могу jsfiddle его успех: function() { \t \t form.reset(); \t $ ('# submitbtn'). Hide(); \t $ ('# success-line'). Show(). FadeOut (7000, function() { \t \t $ ('# submitbtn').шоу ("медленные"); \t}); \t} – paoloi

+0

ty форма работает сейчас – paoloi

Смежные вопросы