如何通过单击链接提交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元素的位置。

  1. 一个button

     <button>submit</button> 
  2. 一条链接

     <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>