2017-03-12 2 views
1

Ich habe ein Formular mit mehreren Dropdown-Auswahl name=select[], und dieses Formular ist validieren von Jquery Validation und nach erfolgreicher Validierung Submit Handler Aufruf Ajax ich möchte alle Formularschlüssel und Werte auch im Array enthalten form, Hier ist mein Code.Ajax Call on Submit-Handler Jquery Validierung

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

Nun ist die, wenn die Überprüfung erfolgreich durchgeführt neuen Formdata (this) erkennt bilden id.but wenn ich new Formdata($("#frmRegister")[0]) legte dann seine Variablen PHP senden, aber nicht Array. Wie kann ich Formular-ID in wie new Formdata("#frmRegister") definieren. Bitte beachten Sie, ich habe auch mehrere Array in Form auswählen.

+0

Wo ist der Rest des Codes? Warum 'Funktion: submitHandler'? Innerhalb der '.validate()' Methode sollte es 'submitHandler: function (form) {...}' sein. Zeigen Sie den Rest des relevanten Codes im richtigen Kontext. – Sparky

Antwort

5

The submithandler geht innerhalb der .validate() Methode und Sie würden das form Argument vom Entwickler zur Verfügung gestellt verwenden.

$('#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

Vielen Dank für die Antwort Ich habe eine Lösung hier ist Code.

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

Aber *** wo ist *** Funktion: submitHandler {...} 'befindet ?? Im Kontext des jQuery Validate-Plugins macht das alles keinen Sinn. Verwenden Sie dieses Plugin tatsächlich, wie durch das Tag auf Ihrer Frage angezeigt? – Sparky

+0

Sorry, aber Funktion: submitHandler Dosis nicht vorhanden sollte submitHandler sein: function (form) als Ihre Anfrage .Thanks – Hashaam

+0

Wenn das stimmt, dann '$ (" # frmRegister "). Load (" submit ")' macht weniger Sinn. Sie würden niemals ein "load" -Handler oder "submit" -Ereignis in die Callback-Funktion "submitHandler" für dieses Plugin einfügen. – Sparky

Verwandte Themen