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

formfrom ajsFiddle の例を参照できます

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

動的フォームを生成するために使用しているコードはわかりませんが、1 つのアプローチは、次のように、フォームごとに 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 に答える