2013-10-04 3 views
9

У меня есть несколько форм с именем того же классапредставить форму из нескольких форм с помощью JQuery-Аякса

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

Тогда как я могу представить одну форму из этого п числа форм я попытался с помощью

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

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

Но он всегда представляет 1-ю форму среди n-форм. Как подать случайную форму среди n-форм. Может кто-нибудь мне помочь.

ответ

13

Вы должны ссылаться на форму с this когда вы сериализовать ...

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

+1 бить меня по полсекунды, но это, кажется, проблема, сериализации все формы каждый раз отправке события на одной из форм тревоги. – adeneo

+0

@adeneo Вам нужно хорошо смазать, чтобы быть достаточно быстрым на этом сайте, не так ли? Пока они получат ответы :) – Archer

+0

'$ (this) .serialize()' может не работать в 'ajax', поэтому вы должны использовать переменную для' this reference', а затем использовать ее. –

1

Используйте это ключевое слово. Он отправит форму, на которой было инициировано событие.

Почему вы используете location.reload?

$('form').on('submit', function (e) { 
    $.ajax({ 
    type: 'post', 
    url: 'addfr.jsp', 
    data: $(this).serialize(), 
    success: function() { 
     location.reload(); 
    } 
}); 
0
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> 
Смежные вопросы