7

フォーム内の複数の送信ボタンを使用したフォーム送信に苦労しています。送信ボタンの名前がシリアル化されていないことは知っていますが、その名前を処理スクリプトに渡す必要があります。

サンプルコード:

<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つの送信ボタンが表示されません!! 他の入力フィールドのみが表示されます。どのボタンが押されたかをどうやって知ることができますか?

4

1 に答える 1

7

送信されるフォームだけでなく、クリックされるボタンに依存しているため、アクションをボタンにバインドします。$(this)クリックされ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});
    ...
于 2013-03-13T23:26:03.987 に答える