我有一组 HTML 表单链接,我在点击时提交,其 ID 为“ajaxForm”
for ($year = 2008; $year <= intval(date('Y')); $year++) {
if ($year == $currentYear)
continue;
echo '<div style="float:right;padding-right:20px;"><form name="year' . $year . 'Form1" id= "ajaxForm" action="/managementDashboard#visibleTab-5" method="post"><input name="getRecordsFor" type="hidden" value="' . $year . '"><a id="buttonRed" href="javascript:document.year' . $year . 'Form1.submit();">' . $year . '</a></form></div>' . chr(10);
}
但是,我使用 jQuery 而不是默认提交,而是使用以下方法发布数据:
jQuery("form#ajaxForm").click(function(event) {
/* stop form from submitting normally */
event.preventDefault();
/* Send the data using post and put the results in a div */
jQuery.post( '/ajaxFunctions?mgmtDbrdPge=5', jQuery("#ajaxForm").serialize(),
function( data ) {
jQuery( "#visibleTab-5" ).empty().append( data );
}
);
});
问题是它提交的是所有表单,而不是我单击的单个表单。有没有办法可以防止这种情况,而不必为每个单独的表单编写 jQuery 链接?
更新 - 我接受了一个答案,因为他的方法是合法的,但我意识到我的问题是什么。而不是 jQuery("#ajaxForm").serialize(),我应该把它写成 jQuery(this).serialize() 只调用通过点击提交的数据,而不是所有具有该 ID 的表单。