[英]Form preventDefault not working
I have a button that submits a hidden form:我有一个提交隐藏表单的按钮:
<a href = "javascript:;" onclick = "document.getElementById('work-for-form').submit();">
Form:形式:
<form id="work-for-form" action="localhost/update" method="PUT" style="display: none;">
{{ csrf_field() }}
</form>
And my js:还有我的js:
$("#work-for-form").submit(function(event){
event.preventDefault();
console.log(event);
});
But the form still loads a new page.但是表单仍然加载一个新页面。
What am i doing wrong?我做错了什么? Thanks
谢谢
The onclick event on your a is too strong to prevent the submission of the form.您的 a 上的 onclick 事件太强,无法阻止提交表单。 I would suggest the following to fix this:
我会建议以下来解决这个问题:
<a href="javascript:;" >form submit</a>
<form id="work-for-form" action="/update" method="PUT" style="display: none;">{{ csrf_field() }}</form>
<script>
$("a").on("click",function(){
$("#work-for-form").submit();
})
$("#work-for-form").submit(function(event){
alert('intercept');
event.preventDefault();
console.log(event);
});
</script>
see also https://jsfiddle.net/9hta6f48/另见https://jsfiddle.net/9hta6f48/
You can use return false
or you can use eventListeners
您可以使用
return false
或您可以使用eventListeners
<form onsubmit="alert('stop submit'); return false;" >
Or或者
function mySubmit(){
alert('Will not submit');
return false;
}
</script>
<form onsubmit="return mySubmit();" >
Or event listeners或者事件监听器
var myFuncRef = function(event) { event.preventDefault() }
element.attachEvent('onclick', myFuncRef);
Your code must be inside $(document).ready or must be after the form is rendered,您的代码必须在 $(document).ready 内或必须在表单呈现之后,
$(document).ready(function(){
$("#work-for-form").submit(function(event){
event.preventDefault();
console.log(event);
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.