2017-06-03 36 views
0

我想通過點擊每個提交按鈕發送我的表單。每次點擊發送表單通過ajax

我的問題:如何發送每個表格並分別指出每個結果。我測試過下面的代碼,但它不發送任何東西,也沒有結果DIV與.divs

$("form").on('submit',function(e) { 
 
    var url = 'http://seller.ir/test' 
 
    $.ajax({ 
 
    type: "POST", 
 
    url: url, 
 
    data: $(this).serialize(), 
 
    success: function(data) { 
 
     $(this).find('.divs').empty 
 
     $(this).find('.divs').html(data) 
 

 
    } 
 
    }); 
 
    e.preventDefault(); 
 
});
form{ 
 
\t width:100px; 
 
\t border:1px solid blue; 
 
\t height:50px; 
 
\t }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 
 
<div class="divs"> 
 
<form> 
 
<button id="done"type="submit">done</button> 
 
</form> 
 
</div> 
 
<div class="divs"> 
 
<form> 
 
<button id="done" type="submit">done</button> 
 
</form> 
 
</div> 
 
<div class="divs"> 
 
<form> 
 
<button id="done" type="submit">done</button> 
 
</form> 
 
</div>

+0

ajax成功後,表單被刪除。添加'html(data)'.for更好的是你可以在表格中添加'.divs' – prasanth

+0

@prasad是的,我想刪除表單並顯示第二頁的結果而不是那個 – inaz

+0

首先,使用error函數用於調試AJAX。其次是通過ajax發送表單的簡單方法,看看這個鏈接http://malsup.com/jquery/form/#file-upload –

回答

0

與您的代碼唯一的問題是,你的形式別沒有.divs作爲他們的後代。請閱讀.find()的文檔。

獲取當前匹配元素集中每個元素的後代,由選擇器,jQuery對象或元素過濾。

你的HTML改爲

<form> 
    <button id="done"type="submit">done</button> 
    <div class="divs"></div> 
</form> 
<form> 
    <button id="done"type="submit">done</button> 
    <div class="divs"></div> 
</form> 
<form> 
    <button id="done"type="submit">done</button> 
    <div class="divs"></div> 
</form> 

現在,如果按按鈕,相應的表單會觸發其submit事件,這將是jQuery的處理。另外,正如其他答案指出的那樣,不同元素的ID對於HTML頁面必須是唯一的。

如果您只是更換內部div的內容,則此行就足夠了。

$(this).find('.divs').html(data); 

您不需要先清空div。