我没有提交按钮,而是有一个链接:
<form>
<a href="#"> submit </a>
</form>
我可以在点击时提交表单吗?
答案 0 :(得分:192)
最好的方法是插入适当的输入标记:
<input type="submit" value="submit" />
<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
事件包含在后面的JavaScript代码中(backward compatiblity仅选择load
)如果您还没有这样做:
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>
无论您选择哪种方式,最终都会调用formObject.submit()
(其中formObject
是<form>
代码的DOM对象。)
您还必须绑定一个调用formObject.submit()
的事件处理程序,以便在用户单击特定链接或按钮时调用它。有两种方法:
推荐:将事件侦听器绑定到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>submit</button>
链接
<a href="#">submit</a>
应用上述技术以添加事件监听器。
答案 1 :(得分:62)
如果您使用jQuery并且需要内联解决方案,那么这将非常有效;
<a href="#" onclick="$(this).closest('form').submit();">submit form</a>
此外,您可能想要替换
<a href="#">text</a>
与
<a href="javascript:void(0);">text</a>
因此,点击链接后,用户不会滚动到页面顶部。
答案 2 :(得分:21)
您可以为表单和链接指定一些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;
};
};
我建议您使用提交按钮提交表单,因为它尊重标记语义,即使对于禁用了javascript的用户也会有效。
答案 3 :(得分:3)
HTML&amp; CSS - 没有Javascript解决方案
使您的按钮显示为Bootstrap链接
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;
}
答案 4 :(得分:1)
这很好用,不需要任何特殊功能。使用php也更容易编写。 <input onclick="this.form.submit()"/>
答案 5 :(得分:0)
document.getElementById("theForm").submit();
在我的案例中它完美无缺。
你可以在功能中使用它,比如,
function submitForm()
{
document.getElementById("theForm").submit();
}
设置&#34; theForm&#34;作为您的表单ID。它已经完成了。
答案 6 :(得分:0)
这是您问题的最佳解决方案: 在表格中你有这些代码:
<li><a href="#">Singup</a></li>
<button type="submit" id="haha"></button>
在CSS文件中,执行以下操作:
button{
display: none;
}
在JS中你可以这样做:
$("a").click(function(){
$("button").trigger("click");
})
你去。
答案 7 :(得分:0)
我的建议是:
<form action="/logout" method="POST">
<button type="submit" style="display:none;">Log Out</button>
<a href="/logout" onclick="event.preventDefault();this.closest('form').submit();">Log Out</a>
</form>
答案 8 :(得分:-1)
<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>