2012-11-02 53 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呃浏览器会提交这个值。