2013-03-13 16 views
7

Sono in difficoltà con il modulo di invio utilizzando più pulsanti di invio nel modulo. So che il nome del pulsante di invio non è serializzato, ma ho bisogno di passare quel nome allo script di elaborazione. CodicejQuery/Ajax non ottiene il pulsante di invio nome

Esempio:

<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> 

Ci sono 2 pulsanti presentare qui, ma nel codice jQuery:

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

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

Il 2 presentare pulsanti non mostrano !! Solo gli altri campi di input mostrano. Come faccio a sapere quale pulsante è stato premuto ??

risposta

7

Poiché si fa affidamento sui pulsanti su cui si fa clic anziché solo sul modulo inviato, vincolare l'azione ai pulsanti. Come $(this) in function(){} è il pulsante su cui è possibile inserire i dettagli per formattare i dati.

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