通过javascript提交表单

时间:2013-06-04 17:06:27

标签: javascript html

我研究了如何通过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将被复制。什么是更好的方法?

感谢您的任何提示!

2 个答案:

答案 0 :(得分:1)

您可以参考formexample 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++}

中增加计数器