我如何使用<a href="…">标签提交POST表单?

我怎样才能使用<a href="...">标记提交POST表单到showMessage.jsp

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

如果您使用button,则不需要JavaScript:

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

您可以将button设置为链接 ,例如:

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

你必须在你的form对象上使用Javascript submitfunction。 看看其他function 。

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

你需要为此使用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> 

如果你使用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>在它的顶部,它仍然会工作,但明确地把它放在那里感觉有点安全。

真的好像没有办法把<a href= ..一个POST方法。 但是,由于您可以访问页面的CSS,因此可以使用表单代替。

不幸的是,将CSS中的button设置为定位标记的明显方式并不是跨浏览器兼容的,因为不同的浏览器会以不同的方式处理<button value= ...

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

上面的例子会显示FireFox中的'Two'和''参数:'一',IE8中会显示'One'并且也传递'参数'一个。

解决方法是使用隐藏的input字段来传递数据,而button只是用来提交数据。

 <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”作为剩余参数。

因为(如上所述)一些浏览器会显示一个而另一些显示另一个作为button标签,所以您希望保留一个button,标签之间的值属性和button标签都相同(本例中的“删除”)。