2013-03-13 38 views
7

フォームの複数の送信ボタンを使用してフォーム送信に苦労しています。送信ボタン名はシリアル化されていませんが、その名前を処理スクリプトに渡す必要があります。jQuery/Ajaxは送信ボタン名を取得しません

サンプルコード:

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

2があり、ここでボタンを提出しますが、jQueryのコードでされています

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

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

2つの送信ボタンは表示されません!他の入力フィールドのみが表示されます。どのボタンが押されたかはどのようにわかりますか?

答えて

7

送信されるフォームではなく、クリックされているボタンに頼っているので、ボタンにアクションをバインドします。 をfunction(){}にすると、クリックしたボタンが表示され、その詳細をformDataに渡すことができます。

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