2017-03-12 43 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