2017-03-12 39 views
1

我有一个表单,它有多个选择下拉name=select[],这种形式是从jquery验证和验证成功后验证提交处理程序调用Ajax我想发送所有的表单键和值也包括在数组中表单,这是我的代码。Ajax调用提交处理程序jquery验证

function:submitHandler 
{ 
$.ajax({ 
url: "processo.php", 
type: "POST",    
data: new FormData(this), 
cache: false,    
processData:false,  
success: function(data) 
{ 
$('#loading').hide(); 
$("#message").html(data); 
} 
}); 
} 

现在在验证成功完成新FORMDATA(本)无法识别形成id.but当我把new Formdata($("#frmRegister")[0])那么它的变量发送到PHP但不是阵列。我怎样才能像new Formdata("#frmRegister")像定义表单ID。请记住,我也有多个选择数组的形式。

+0

代码的其余部分在哪里?为什么'function:submitHandler'?在'.validate()'方法中,它应该是'submitHandler:function(form){...}'。在适当的上下文中显示其余的相关代码。 – Sparky

回答

5

The submithandler进入.validate()方法的内部,您可以使用开发人员提供的参数form

$('#myform').validate({ 
    submitHandler: function(form) { 
     $.ajax({ 
      url: "processo.php", 
      type: "POST",    
      data: new FormData($(form)), 
      cache: false,    
      processData: false,  
      success: function(data) { 
       $('#loading').hide(); 
       $("#message").html(data); 
      } 
     }); 
     return false; 
    }, 
    // other options 
}); 

You could also use $(form).serialize(); instead

1

非常感谢你给予答案我有这里的解决方案是代码。

function:submitHandler 
{ 
$("#frmRegister").load("submit",function(e)// Trigger Submit When Validation Done 
{ 
$.ajax({ 
url: "processo.php", 
type: "POST",    
data: new FormData(this), 
cache: false,    
processData:false,  
success: function(data) 
{ 
$('#loading').hide(); 
$("#message").html(data); 
} 
}); 
}); 
} 
+0

但***在哪里***是'function:submitHandler {...}'位于??这在jQuery Validate插件的上下文中没有任何意义。你是否真的使用这个插件,如你问题上的标签所示? – Sparky

+0

对不起,但函数:submitHandler剂量不存在应提交处理程序:函数(表单)作为您的请求。谢谢 – Hashaam

+0

如果这是真的,那么'$(“#frmRegister”).load(“submit”)'没那么有意义。你永远不会在这个插件的'submitHandler'回调函数中加载'load'处理程序或'submit'事件。 – Sparky