簡體   English   中英

通過帶參數的鏈接提交表格

[英]Submit form from a link with param


我正在嘗試並搜索了幾天,卻找不到答案。
我的問題是:我使用超鏈接和Javascript提交表單,但是我還需要使用鏈接提交參數。 代碼如下:

<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" .../>參數,因為我只需要鏈接的參數。

如果您能幫助我,我將不勝感激。

您還需要將參數添加到表單的action屬性中。 這確定了提交時向頁面提交的URL。

因此,當單擊鏈接時,您可能需要使用javascript更改此屬性值,以使其表現為這種行為。

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

當您刪除return false ,實際上您只是在快速提交表單后獲取鏈接的默認行為。

如果在循環外添加隱藏的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>

如果不需要錨,則可以使用button元素代替提交來解決此問題,而無需使用JavaScript:

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

請注意,Internet Explorer 8以前的版本將在<button></button>標記之間提交文本,而其他瀏覽器將提交該值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM