如何仅使用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>
答案 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'作为剩余参数。
你想为一个按钮保留标签之间的值属性和按钮标签两者相同(在这种情况下为“删除”),因为(如上所述)某些浏览器将显示一个,一些显示另一个作为按钮标签。