我有一套其中我在点击提交HTML表单链接具有id为“给ajaxForm”jQuery的防止各种形式的一次提交
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的所有表单。
你不能有与页面上的多个元素相同的ID。尝试首先解决问题,看看你的问题是否会消失。 – MrOBrian
HTML标记循环在echo语句中。问题是我使用该ID来提交表单。那么我需要为每个表单执行相同的jQuery代码吗?有没有更短的路? – wiseman7687