2014-09-02 118 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