2013-03-13 14 views
7

Ich habe Probleme mit der Formularübergabe, indem mehrere Übergabeschaltflächen im Formular verwendet werden. Ich weiß, dass der Name der Übergabeschaltfläche nicht serialisiert ist, aber ich muss diesen Namen an das Verarbeitungsskript übergeben.jQuery/Ajax erhält keinen Namen für die Schaltfläche "Senden"

Beispielcode:

<form id='newqueryform' action='process-forms.php' method='post' > 
    <input type='hidden' name='formname' value='newqueryform'> 
    <div id='runit'><input type='submit' name='runit' value='Run' /></div> 
    <div id='saveit'><input type='submit' name='saveit' value='Save' /></div> 
</form> 

Es gibt 2 Tasten hier einreichen, aber in der jQuery-Code:

$('#workarea').on('submit','#newqueryform', function(e) 
{   

    var formData = $(this).closest('#newqueryform').serializeArray(); 
    alert(JSON.stringify(formData)); 
    ... 

Die 2 einreichen Tasten zeigen nicht !! Nur die anderen Eingabefelder zeigen an. Woher weiß ich, welche Taste gedrückt wurde ??

Antwort

7

Da Sie sich darauf verlassen, dass die Schaltflächen angeklickt werden und nicht nur das Formular, senden Sie die Aktion an die Schaltflächen. Als $(this) in function(){} ist der angeklickte Knopf Sie können seine Details zu formData.

$('#workarea').on('click','#newqueryform input[type="submit"]', function(e){ 
    var formData = $(this).closest('#newqueryform').serializeArray(); 
    formData.push({name: this.name, value: this.value}); 
    ... 
Verwandte Themen