是否可以使用锚点使表单提交POST样式?
<form>
<input name="foo" />
<input name="bar" />
<a href="#">Submit this form</a>
</form>
原始问题,this answer
在Martijn中解释是否可以使用超链接作为POST
方法传递值?
我想将点击图片的值传递给下一页。
答案 0 :(得分:1)
我将在下面留下原来的答案,为什么主播不能进行一次电话会议。然而,这个问题已被重新定义,这个答案将回答这个问题:
您不能使用锚点来提交,但通常会让它触发提交:
$('a#myAnchor').click(function(){ $('#myForm').submit() })
/// Or an image, doesn't really matter for jQuery:
$('img#myImg').click(function(){ $('#myForm').submit() })
// Or native js:
document.getElementById('myImg').onclick = function(){ document.getElemetById('myForm').submit() });
如果您要触发提交的元素位于表单内:
$('element').click(function(){ $(this).closest('form').submit() });
没有。锚点是GET,因为锚点会将你发送到一个网址,这会使它获得GET,而不是POST。
POST是以后格式发送的数据,它以服务器可以处理的方式进行编码(对图像等很重要)
在其他主题this reply explains difference between GET and POST
中如果你必须,我的意思是真的必须,你可以使用jQuery来伪造一个帖子,这些都是这些内容:
// THIS IS AN UNTESTED DRAFT! Just to shown you a direction:
$('a').click(function(e){
e.preventDefault();
var scriptname = this.href.replace(/\??(.*)?/, ''); // remove everything after '?'
var query = this.href.replace(/(.*)\?/, ''); // remove everything before '?'
$.post(scriptname, query);
});
但是,除非你真的真的必须这样做,否则不要这样做。这将向服务器发送ajaxcall,因此页面实际上不会更改。因为这是不好的做法,我不会告诉你如何在完成时更改页面,你必须用jQuery POST documentation
来解决这个问题。