我研究了如何通过javascript提交表单,但在我的情况下,我正在根据数据集创建几个表单。我不知道引用表单ID的最佳方法。
<c:forEach
var="meeting"
items="${response.mMeetingList}"
begin="0"
end="5">
<div class="row">
<ul class="span4 unstyled">
<li>
<form name="mtgDetailsForm" action="/transporter/app/meeting/read" method="POST">
<input type="hidden" name="meetingId" value="${meeting.meetingId} }">
<a href="javascript: getMtgDetails()" class="row">
<div class="span1"><fmt:formatDate value="${meeting.startTime}" type="time" pattern="h:mm a"></fmt:formatDate></div>
<div class="span3">${meeting.meetingName}</div>
</a>
</form>
</li>
</ul>
</div>
</c:forEach>
这是提交表单的JS方法:
function getMeetingDetails( data ){
document.mtgDetailsForm.submit();
}
显然,这不起作用,因为表单ID将被复制。什么是更好的方法?
感谢您的任何提示!
答案 0 :(得分:1)
您可以参考form
,example on jsFiddle
a
function sub(e)
{
var f = e.parentNode;
// if using jQuery prefer this method to access `form`
// var f = $(e).closest("form");
f.submit();
}
然后
<a href="#" onclick="sub(this)">Submit</a>
答案 1 :(得分:1)
我不知道你用来生成动态表单的代码,但是一种方法是为每个表单生成一个id,如下所示:
<form name="mtgDetailsForm${counter}">
将表单id by参数传递给函数
<a href="javascript: getMtgDetails('mtgDetailsForm${counter}')" class="row">
获取表单并根据参数
提交function getMeetingDetails( formId ){
document.getElementById(formId).submit();
}
还需要在for循环${counter++}