【发布时间】:2013-12-24 21:49:29
【问题描述】:
如何通过点击元素提交表单?
我尝试了下面的代码,但 Chrome 使用 http GET 方法发送它。如何解决这个问题,以便使用 POST 方法发送表单?
<html>
<body>
<form id="_form" method='post' target='_blank'>
<input type="email" value="me@company.com" name="_email" />
<a href='SendEMail?_entity=DokGReport&_dokumnrs=135361'
id='sendemail' class='button'>
Send
</a>
</form>
<script>
$(function () {
$('#sendemail').button({ icons: { primary: "ui-icon-mail-closed" } })
.click(function () {
$('#_form')[0].action = $(this).attr('href');
$('#_form')[0].submit();
});
});
</script>
</body>
</html>
【问题讨论】:
-
hmm...尝试将
_entity和您的其他参数添加为隐藏输入字段,即<input type="hidden" name="_entity" value="DokGReport" />等,并将它们从操作URL 中删除。 -
为什么不将表单的动作定义为表单属性?
-
@Daiwei 我猜一下:在实际应用中可能会有多个链接,所以动作取决于他点击了哪个。
-
表单包含多个元素。每个元素点击都应该发布到不同的 URL 并使用 POST 方法来获取所有表单数据。所以不能使用单个动作。
-
将
return false添加到点击处理程序可以解决问题吗?
标签: javascript jquery forms jquery-ui form-submit