如何使用<a href="..."> tag?</a>提交POST表单

时间:2011-11-17 14:45:22

标签: html forms jsp

如何仅使用showMessage.jsp代码向<a href="...">提交POST表单?

<form action="showMessage.jsp" method="post">
    <a href="showMessage.jsp"><%=n%></a>
    <input type="hidden" name="mess" value=<%=n%>/>
</form>

5 个答案:

答案 0 :(得分:77)

如果您改用按钮,则无需JavaScript:

<form action="your_url" method="post">
    <button type="submit" name="your_name" value="your_value" class="btn-link">Go</button>
</form>

您可以style a button to look like a link,例如:

.btn-link {
    border: none;
    outline: none;
    background: none;
    cursor: pointer;
    color: #0000EE;
    padding: 0;
    text-decoration: underline;
    font-family: inherit;
    font-size: inherit;
}

答案 1 :(得分:37)

您必须在submit对象上使用Javascript form函数。看看其他 functions

<form action="showMessage.jsp" method="post">
    <a href="javascript:;" onclick="parentNode.submit();"><%=n%></a>
    <input type="hidden" name="mess" value=<%=n%>/>
</form>

答案 2 :(得分:31)

你需要使用javascript。

<form id="form1" action="showMessage.jsp" method="post">
    <a href="javascript:;" onclick="document.getElementById('form1').submit();"><%=n%></a>
    <input type="hidden" name="mess" value=<%=n%>/>
</form>

答案 3 :(得分:3)

如果您使用MVC来完成它 - 您将不得不做这样的事情

 <form action="/ControllerName/ActionName" method="post">
        <a href="javascript:;" onclick="parentNode.submit();"><%=n%></a>
        <input type="hidden" name="mess" value=<%=n%>/>
    </form>

我刚刚在这里看了一些例子,并没有看到MVC的人认为发布它不会有什么坏处。

然后在控制器中的操作中,我只需将<HTTPPost>置于其顶部。 我相信如果你没有<HTTPGET>它仍然可以工作,但明确地把它放在那里感觉有点安全。

答案 4 :(得分:0)

似乎没有办法将<a href= ..弄成一个POST方法。但是,如果您可以访问页面的CSS,则可以使用表单替换它。

不幸的是,将CSS中的按钮设置为锚标记的明显方式不是跨浏览器兼容,因为不同的浏览器对<button value= ...的处理方式不同。

Incorrect:

<form action='actbusy.php' method='post'>
  <button type='submit' name='parameter' value='One'>Two</button>
</form>

以上示例将显示“Two”并在FireFox中传输'parameter:One',而它将显示'One'并在IE8中同时传输'parameter:One'。

方法是使用隐藏的输入字段来传递数据,使用按钮来提交数据。

<form action='actbusy.php' method='post'>
   <input class=hidden name='parameter' value='blaah'>
   <button type='submit' name='delete' value='Delete'>Delete</button>
</form>

注意,这种方法有副作用,除了'参数:blaah'之外,它还会在POST中提供'delete:Delete'作为剩余参数。

你想为一个按钮保留标签之间的值属性和按钮标签两者相同(在这种情况下为“删除”),因为(如上所述)某些浏览器将显示一个,一些显示另一个作为按钮标签。