2016-03-19 18 views
0

私は、テンプレートエンジンによって実行時に動的に生成される複数のフォームを持っています。イベントを委任する。動的に生成されたフォームの送信時に、どのサブミットボタンがクリックされたかを見つける

$("#friendRequestsList").on("submit", "[id^=friendReqResponse-form]", function(){ 
    var form = this; 
    $(form).ajaxSubmit({ 
     url:'URL', 
     type:'post', 
     dataType: 'json', 
     success: function(data) { 
      DO SOMETHING 
     } 

    }); 
    return false; 
}); 

フォームには2つの送信ボタンがあり、どのボタンがクリックされたかを検出し、この情報をajaxリクエストに渡す必要があります。しかし、私は彼らが動的に生成されているので、フォームのサブミット入力のどれがクリックされたかを知るのに苦労しています。アイデア?

+0

設定しますこの値は、フォームのデータの残りの部分と一緒に渡す必要があります。しかし、あなたが作業しているフォームボタンを調整できない場合、どのように役立つかはわかりません。 – Connor

+0

ではなく、フォームの入力フィールドとフォームの入力フィールドだけがフォームデータとして渡されます.WASが残りのフォームデータと一緒に渡された場合、これも問題を解決します。 – Alexjjsmith

+1

謝罪、私は間違っているに違いない。その場合は、可能であればフォームへのイベントハンドラの代わりにボタンにバインドするクリックイベントハンドラを提案することがあります。そうでない場合は、フォーム全体にクリックイベントをバインドし、[jQueryの 'event.target'](https://api.jquery.com/event.target/)をクリックしてその要素にアクセスし、クリックされたものに基づいて送信します? – Connor

答えて

0

、私はそうのような送信ボタンを取得するために管理している:

$("#friendRequestsList").on("click", "[id^=submit1], [id^=submit2]", function(e) { 
    var input = this; 
    var form = $(input).parent(); 

    $(form).ajaxSubmit({ 
     url:'URL', 
     type:'post', 
     dataType: 'json', 
     success: function(data) { 
      DO SOMETHING 
     } 

    }); 
    e.preventDefault() 
}); 

もちろん、私のフォームにキー入力からフォームを送信しても入力フィールドがなかった場合は、これはうまくいきません。また、入力識別情報をajaxリクエストに追加する必要があります。

私はajaxSubmitに

data: {submit:input.value}, 

を追加することによって、これをしなかったが、あなたは( `input`はなく、少なくとも` button`品種の)送信ボタンに値を割り当てると、私は信じてい

0

は、私はそれはあなたを助けることを願っています:クリックイベントを使用する代わりに提出するのコナーズの提案、次の

$("#friendRequestsList").on("submit", "[id^=friendReqResponse-form]", function(){ 
    var submit1 = $(this).attr('value'); 

    var formData = new FormData(); 
    formData.append('submit1', submit1); 

    $.ajax({ 
     url:'URL', 
     type:'post', 
     data:formData, 
     dataType: 'json', 
     success: function(data) { 
      DO SOMETHING 
     } 

    }); 
    return false; 
}); 
+0

ありがとうあなたの答えが、私はこれが動作するとは思わない。 submit1には、送信ボタンがクリックされていないことを示す未定義の値が割り当てられます – Alexjjsmith

関連する問題