我想通过点击<form>
提交<a>
,因为我使用的库使用<a>
代码构建按钮而不是<button>
或{{1} }。
表单的<input type='submit'>
属性由PHP通过Laravel设置。
我有一个脚本来处理onsubmit
上的点击,这适用于我正在构建的页面。我的页面的提交处理程序当前没有使用该事件。但我想让这个通用。问题在于:
发送&#34;点击&#34;是否可以由锚生成到表单提交处理程序的事件,或者它是否需要&#34;表单提交&#34;事件吗
这是我的代码:
<a>
我也愿意接受我错过了某些内容的想法,这样做更容易 - 提交包含/不包含电话的表单的某种方式根据处理程序是否存在提交处理程序,这也可以扩展到通过<form method="POST" action="somewhere" onsubmit="return form_sub()" id="myForm">...</form>
<a id='saveButton' href='#'>Save</a>
<script type='text/javascript'>
$(document).ready(function() {
$('#saveButton').click(function (e) {
e.preventDefault();
var $f = $('#myForm');
if ($f.prop('onsubmit')) {
if ($f.prop('onsubmit')(e)) { // <-- there, that event, passed to a handler that might expect a different "type" of event?
$f.submit();
}
} else {
$f.submit();
}
});
});
</script>
安装的处理程序。我意识到.addEventListener
调用$(form).submit()
安装的事件处理程序,但问题不是这样,我希望此代码涵盖双向安装的处理程序。
答案 0 :(得分:1)
您可以关闭屏幕input type="submit"
或button type="submit"
并触发点击,以便用户仍然可以通过键盘和屏幕阅读器/辅助功能提交
function form_sub() {
alert('Submiting');
return false;
}
$(function() {
$('#saveButton').click(function() {
$('#submit-btn').click();
})
})
#submit-btn {
position: absolute;
top: -999em;
left: -999em
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form method="POST" action="somewhere" onsubmit="return form_sub()" id="myForm">
<a id='saveButton' href='#'>Save</a>
<input id="submit-btn" type="submit" value="Submit">
</form>
理想情况下,将库按钮样式复制到input
答案 1 :(得分:0)
试试这个
$('#saveButton').click(function (e) {
e.preventDefault();
$("#myForm").submit()
});