0

我研究了如何通过 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 会重复。有什么更好的方法?

感谢您的任何提示!

4

2 回答 2

1

您可以参考jsFiddle 上formfrom示例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>
于 2013-06-04T17:13:29.207 回答
1

我不知道您用于生成动态表单的代码,但一种方法是为每个表单生成一个 id,如下所示:

 <form name="mtgDetailsForm${counter}">

通过参数将表单 id 传递给函数

<a href="javascript: getMtgDetails('mtgDetailsForm${counter}')" class="row">

根据参数获取表单并提交

function getMeetingDetails( formId ){
        document.getElementById(formId).submit();
    }

还需要增加for循环内的计数器${counter++}

于 2013-06-04T17:13:53.950 回答