我如何使用<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 submit
function。 看看其他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标签都相同(本例中的“删除”)。