2015-10-13 109 views
0

我搜索了很高的&低,發現大量近點,但仍然在尋找答案。YA使用AJAX提交多個表格

考慮基本情況:

<form id="id1" onsubmit="return submit_add2cart();" > 


<script> 
function submit_add2cart() { 
$.ajax 
({ 
type:'POST', 
url: 'ajax.pl', 
data:$('id1').serialize(), 
success: function(response) { 
alert(response); 
}} 
); 
return false; 
} 
</script> 

現在,讓我們說我有想打電話給同submit_add2cart()函數相同頁面上的多個表格; submit_add2cart()應該只處理調用表單。

<form id="id1" onsubmit="return submit_add2cart();" > 
<form id="id2" onsubmit="return submit_add2cart();" > 
<form id="id3" onsubmit="return submit_add2cart();" > 

submit_add2cart()的代碼是什麼樣的?

謝謝 邁克爾

回答

0

添加form s的action屬性,它是強制性的,加個班,說ajax-submit

<form id="id1" action="ajax.pl" class="ajax-submit"> 
<form id="id2" action="ajax.pl" class="ajax-submit"> 
<form id="id3" action="ajax.pl" class="ajax-submit"> 

現在,使用jQuery的不顯眼的方法綁定提交行動:

$(function() { 
    $(".ajax-submit").submit(function() { 
    $.post($(this).attr("action"), $(this).serialize(), function (response) { 
     alert(response); 
    }); 
    return false; 
    }); 
}); 

你不需要一個單獨的函數,或三個differen t方法。只有提交的表單將會根據自己的數據提交,而不是其他數據。

+0

奇妙的是,我正在尋找的解決方案,非常感謝! – Plavnostruev

+0

如果我可能推動我的運氣進一步:-)所以我有2個提交按鈕在此表單上:。基本上添加到購物車或希望列表。在我提交表單的原始CGI方式中,我可以通過在參數列表中查找「add2wish」來確定哪個按鈕被點擊 - 如果有,則按下add2wish。它現在似乎與AJAX按下提交按鈕名稱不再在參數列表中的數字...是這樣嗎?那麼,我怎麼能區分這兩者呢?預先感謝你,邁克爾 – Plavnostruev

+0

當然... @Plavnostruev你想介意接受我的答案,而我尋求解決你的問題? –