从带有param的链接提交表单

时间:2012-11-02 23:17:31

标签: javascript html forms parameters hyperlink


我现在正在尝试和搜索几天,但找不到答案 我的问题是这样的:我使用超链接和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" .../> param,因为我只需要链接的参数。

如果你能帮助我,我将不胜感激....

3 个答案:

答案 0 :(得分:1)

您还需要将参数添加到表单的action属性中。这决定了提交时页面提交的URL。

因此,当链接被点击到这样的行为时,您可能需要使用javascript来更改此属性值。

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

当您删除return false时,您实质上所做的只是在表单快速提交后获取链接的默认行为。

答案 1 :(得分: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>

答案 2 :(得分:-1)

如果你不需要拥有锚点,你可以通过使用button elements代替而不用JavaScript来解决这个问题:

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

请注意,Internet Explorer(早期版本8)将在<button></button>标记之间提交文本,而其他浏览器则会提交该值。