2014-09-02 114 views
2

我想在我的網站上使用jQuery驗證插件。我需要驗證兩個單獨的表單並使用ajax將它們提交給兩個不同的PHP頁面。我是JavaScript新手,但對此做了大量的研究,但是,我仍然陷入困境。jQuery驗證頁面上的多個表單使用AJAX

這就是我到目前爲止......我如何驗證並提交一個表格到processA.php和第二個表格到processB.php。每個表格都有不同的字段。是否可以添加第二個submitHandler

$("form").each(function() { 
    $(this).validate({ 
     submitHandler: function(form) { 
      $.ajax({ 
       type : 'POST', 
       url  : 'processA.php',// write code to send mail in mail.php 
       data : $(form).serialize(), 
       cache : false, 
       dataType: 'text', 
       success : function (serverResponse) { 
         alert('mail sent successfully.'); 
       }, 
       error : function (jqXHR, textStatus, errorThrown) { 
         alert('error sending mail'); 
       } 
      }); 
      return false; // Temporary 
     } 
    }); 
}); 
+0

請僅使用內嵌代碼的反標記,而不是代碼塊。使用'{}'按鈕來格式化一段代碼。 – Sparky 2014-09-02 18:51:45

回答

1

不,你不能有.validate()方法的一個實例中的兩個不同submitHandler回調函數。當您在jQuery .each()中調用.validate()方法時...您有意將相同選項應用到您的.each()定位的每個form


相反,把相應的URL每個form標籤的action屬性中......

<form action="processA.php" ... 

<form action="processB.php" ... 

使用jQuery's .attr() method讓每個action正確的網址...

$("form").each(function() { 
    $(this).validate({ 
     submitHandler: function(form) { 
      $.ajax({ 
       .... 
       url: $(form).attr('action'), // <- the correct URL for this form 
       .... 
      }); 
      return false; // Temporary 
     } 
    }); 
}); 
+0

非常感謝! – DROTH 2014-09-02 20:16:45