2012-11-02 51 views
1


我正在嘗試搜索現在的日子,無法找到答案。
我的問題是這樣的:我使用超鏈接和Javascript提交表單,但我也需要提交一個參數的鏈接。代碼如下所示:從與param的鏈接提交表單

<form action="Action.jsp" method="post" id="form-id"> 
    <input .../> 
    ... 
    <c:forEach items="${items}" var="item" varStatus="vs"> 
    <a href="Action.jsp?id=${vs.count}" 
     onclick="javascript:document.forms['form-id'].submit(); return false"> 
     ${vs.count} 
    </a> 
    </c:forEach> 
</form> 

如果我離開走return false帕拉姆ID被轉移,但其他<input .../>參數沒有,反之亦然。你如何看待我不能使用<input type="hidden" .../>參數,因爲我只需要鏈接的參數。

如果你請能幫助我,我將不勝感激....

+1

請給我們呈現的HTML輸出。不是一些無人理解的亂語。順便說一下, –

+3

'methode =「post」'應該是'method =「post」'。 –

+1

' ID 1 ID 2 '這將是呈現的HTML輸出(mor或更少) – user1795637

回答

0

如果添加一個隱藏input外循環,可以在提交前設置輸入的值:

<form action="Action.jsp" methode="post" id="form-id"> 
    <input .../> 
    <input type="hidden" id="button-id"/> 
    ... 
    <c:forEach items="${items}" var="item" varStatus="vs"> 
    <a href="Action.jsp" 
     onclick="javascript:document.getElementById('button-id').value=${vs.count};document.forms['form-id'].submit(); return false"> 
     ${vs.count} 
    </a> 
    </c:forEach> 
</form> 
+1

就我個人而言,我還會提取函數中的JavaScript代碼以使其更具可讀性。 –

+0

非常感謝。最後它起作用。 – user1795637

1

您需要將參數添加到形式的action屬性爲好。這決定了發生提交時頁面被提交到的URL。

所以你可能需要使用javascript來改變這個屬性值,當鏈接被點擊到它的行爲像這樣。

<form action="Action.jsp?id=${vs.count}" method="post" id="form-id"> 

當您刪除return false,你在本質上是做的是剛開鏈接的默認行爲的形式提交很快之後什麼。

+0

謝謝。我會嘗試這個,但沒有一個easyer方法,沒有一個新的Javascript函數? – user1795637

+0

是的,有一種更簡單的方法...不是通過URL和POST同時傳遞參數,而是通過POST在隱藏字段中傳遞您的ID參數(因爲您似乎不想這樣做),但也許這是已經是你的應用程序如何工作的功能,已經太遲以至於無法修復。 –

-1

如果不這樣做需要有錨,你能解決這個沒有JavaScript通過使用button elements不提交:

<button name="id" type="submit" value="${vs.count}">${vs.count}</button> 

需要注意的是Internet Explorer中,前8版,將提交<button></button>標籤之間的文本,而OTH呃瀏覽器會提交這個值。