web-dev-qa-db-ja.com

jquery-ajaxを使用して複数のフォーム間でフォームを送信する

同じクラス名のフォームが複数あります

<form >
  <input type="hidden" value="<%=ids%>" name="idd">
  <input type="hidden" value="<%=email%>" name="cby">
  <input type="text" class="cmd" name="cm" style="width:300px;" placeholder="comment">
  <input type="submit" value="" style="display:none;">
</form>
  <!-- n number of forms are  generated using while loop-->
<form>
  <input type="hidden" value="<%=ids%>" name="idd">
  <input type="hidden" value="<%=email%>" name="cby">
  <input type="text" class="cmd" name="cm" style="width:300px;" placeholder="comment">
  <input type="submit" value="" style="display:none;">
</form>

次に、使用してみたこのn個のフォームの中から1つのフォームを送信するにはどうすればよいですか。

   $(function () {
          $('form').on('submit', function (e) {
                $.ajax({
                 type: 'post',
                  url: 'addfr.jsp',
                  data: $('form').serialize(),
                  success: function () {
                  location.reload();

                  }
          });
         e.preventDefault();
     });
  });

ただし、nフォームの中で常に1番目のフォームを送信しています。 nフォームの中からランダムなフォームを送信するにはどうすればよいですか。誰か助けてくれませんか。

シリアル化するときは、フォームをthisで参照する必要があります...

$(function () {
    $('form').on('submit', function (e) {
        $.ajax({
            type: 'post',
            url: 'addfr.jsp',
            data: $(this).serialize(),
            success: function () {
                location.reload();
            }
        });
        e.preventDefault();
    });
});
13
Archer

このキーワードを使用します。イベントがトリガーされたフォームを送信します。

なぜlocation.reloadを使用しているのですか?

$('form').on('submit', function (e) {
    $.ajax({
    type: 'post',
    url: 'addfr.jsp',
    data: $(this).serialize(),
    success: function () {
        location.reload();
    }
 });
1
Hiral
 You can try this...

 function submitForm(){
document.formName.action="actionName";
document.formName.submit();
 }


 <form method="post" name="formName" enctype="multipart/form-data">
  ....
 <input type="button" onclick="submitForm()"/>
 <form>
0