2013-03-13 8 views
7

Mam problemy z wysyłaniem formularzy za pomocą wielu przycisków przesyłania w formularzu. Wiem, że nazwa przycisku przesyłania nie jest serializowana, ale muszę przekazać tę nazwę do skryptu przetwarzania. KodjQuery/Ajax nie otrzymuje nazwy przycisku przesyłania

Próbka:

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

Istnieją 2 przyciski przesyłania tutaj, ale w kodzie jQuery:

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

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

2 przesłać przyciski nie wykazują !! Pokazują się tylko inne pola wprowadzania. Skąd mam wiedzieć, który przycisk został naciśnięty?

Odpowiedz

7

Ponieważ polegasz na klikniętych przyciskach, a nie tylko na przesłanym formularzu, powiązaj akcję z przyciskami. Po kliknięciu przycisku $(this) w function(){} można uzyskać jego dane, aby utworzyć dane.

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