Javascript 表单默认不工作

Javascript 表单默认不工作,javascript,jquery,Javascript,Jquery,我有一个提交隐藏表单的按钮: <a href = "javascript:;" onclick = "document.getElementById('work-for-form').submit();"> 但是表单仍然会加载一个新页面 我做错了什么? 谢谢a上的onclick事件太强,无法阻止提交表单。我建议采取以下措施来解决此问题: <a href="javascript:;" >form submit</a> <form id="work-fo

我有一个提交隐藏表单的按钮:

<a href = "javascript:;" onclick = "document.getElementById('work-for-form').submit();">
但是表单仍然会加载一个新页面

我做错了什么?
谢谢

a上的onclick事件太强,无法阻止提交表单。我建议采取以下措施来解决此问题:

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

{{csrf_field()}}
$(“a”)。在(“单击”,函数(){
$(“#为表格工作”).submit();
})
$(“#为形式而工作”)。提交(功能(事件){
警报(“拦截”);
event.preventDefault();
console.log(事件);
});

另请参见

您可以使用
返回false
或使用
事件监听器

<form onsubmit="alert('stop submit'); return false;" >
您的代码必须在$(document)内。准备就绪或必须在表单呈现之后

$(document).ready(function(){
  $("#work-for-form").submit(function(event){
    event.preventDefault();
    console.log(event);
  });
});

它是/update,只是这里的一个输入错误。您尝试返回false而不是。PreventDefaults听起来像是有JS错误会阻止代码执行-你检查控制台了吗?是的,没有错误,直接重定向到更新页面。当你在锚中显式调用本机
submit
处理程序时,jQuery处理程序中的PreventDefaults将永远无法工作。这是一个X/Y问题,如果要阻止表单提交,请在单击锚定时停止提交
<form onsubmit="alert('stop submit'); return false;" >
function mySubmit(){
      alert('Will not submit');
      return false;
   }
</script>

<form onsubmit="return mySubmit();" >
var myFuncRef = function(event) { event.preventDefault() }

element.attachEvent('onclick', myFuncRef);
$(document).ready(function(){
  $("#work-for-form").submit(function(event){
    event.preventDefault();
    console.log(event);
  });
});