如何通过单击链接提交JavaScript的表单?
我有一个链接,而不是一个提交button:
<form> <a href="#"> submit </a> </form>
点击时我可以提交表单吗?
最好的办法
最好的方法是插入一个合适的input标签:
<input type="submit" value="submit" />
最好的JS方式
<form id="form-id"> <button id="your-id">submit</button> </form>
var form = document.getElementById("form-id"); document.getElementById("your-id").addEventListener("click", function () { form.submit(); });
如果您还没有这样做,请使用DOMContentLoaded
事件来DOMContentLoaded
后面的JavaScript代码(只selectload
后向兼容性 ):
window.addEventListener("DOMContentLoaded", function () { var form = document.... // copy the last code block! });
简单而不可推荐的方式(前者的答案)
添加onclick
属性到链接和一个id
到表单:
<form id="form-id"> <a href="#" onclick="document.getElementById('form-id').submit();"> submit </a> </form>
所有的方法
无论您select什么方式,最终都会调用formObject.submit()
(其中formObject
是<form>
标记的DOM对象)。
您还必须绑定这样的事件处理程序,该处理程序调用formObject.submit()
,以便在用户单击特定链接或button时被调用。 有两种方法:
-
推荐:将一个事件监听器绑定到DOM对象。
// 1. Acquire a reference to our <form>. // This can also be done by setting <form name="blub">: // var form = document.forms.blub; var form = document.getElementById("form-id"); // 2. Get a reference to our preferred element (link/button, see below) and // add an event listener for the "click" event. document.getElementById("your-id").addEventListener("click", function () { form.submit(); });
-
不推荐:插入内嵌JavaScript。 有几个原因为什么不推荐这种技术。 一个主要的观点是你将标记(HTML)和脚本(JS)混合在一起。 代码变得无组织,相当难以维护。
<a href="#" onclick="document.getElementById('form-id').submit();">submit</a> <button onclick="document.getElementById('form-id').submit();">submit</button>
现在,我们来到您必须决定触发submit()调用的UI元素的位置。
-
一个button
<button>submit</button>
-
一条链接
<a href="#">submit</a>
应用上述技巧以添加事件侦听器。
如果你使用jQuery,并需要一个内联解决scheme,这将工作得很好;
<a href="#" onclick="$(this).closest('form').submit();">submit form</a>
另外,你可能想要更换
<a href="#">text</a>
同
<a href="javascript:void(0);">text</a>
因此用户在点击链接时不会滚动到页面的顶部。
你可以给表单和链接一些ID,然后订阅链接的onclick
事件并submit
表单:
<form id="myform" action="" method="POST"> <a href="#" id="mylink"> submit </a> </form>
接着:
window.onload = function() { document.getElementById('mylink').onclick = function() { document.getElementById('myform').submit(); return false; }; };
我build议你使用提交表单的提交button,因为它尊重标记的语义,即使JavaScript禁用的用户也可以工作。
这工作得很好,不需要任何特殊的function。 用php编写也更容易。 <input onclick="this.form.submit()"/>
这里是你的问题的最佳解决scheme:在表单中你有这些代码:
<li><a href="#">Singup</a></li> <button type="submit" id="haha"></button>
在CSS文件中,执行以下操作:
button{ display: none; }
在JS中,你这样做:
$("a").click(function(){ $("button").trigger("click"); })
你走了
HTML和CSS – 没有Javascript的解决scheme
让你的button看起来像一个引导链接
HTML:
<form> <button class="btn-link">Submit</button> </form>
CSS:
.btn-link { background: none; border: none; padding: 0px; color: #3097D1; font: inherit; } .btn-link:hover { color: #216a94; text-decoration: underline; }
document.getElementById("theForm").submit();
在我的情况下,它是完美的。
你可以在function上也使用它,
function submitForm() { document.getElementById("theForm").submit(); }
将“theForm”设置为您的表单ID。 完成。
<form id="mailajob" method="post" action="emailthijob.php"> <input type="hidden" name="action" value="emailjob" /> <input type="hidden" name="jid" value="<?php echo $jobid; ?>" /> </form> <a class="emailjob" onclick="document.getElementById('mailajob').submit();">Email this job</a>