Javascript event.preventDefault();不像我期望的那样工作
我希望在提交页面之前,在该表单上单击“提交”按钮时验证我的表单 按预期调用并执行验证函数;但是表单之后不会提交,保留更改未保存 这是代码的一部分-Javascript event.preventDefault();不像我期望的那样工作,javascript,jquery,Javascript,Jquery,我希望在提交页面之前,在该表单上单击“提交”按钮时验证我的表单 按预期调用并执行验证函数;但是表单之后不会提交,保留更改未保存 这是代码的一部分- $j("#btnSubmit").on("click",function(event){ event.preventDefault(); alert("validation complete"); return; }); <button type="submit" n
$j("#btnSubmit").on("click",function(event){
event.preventDefault();
alert("validation complete");
return;
});
<button type="submit" name="btnSubmit" id="btnSubmit" value="btnSubmit"> </button>
您正在使用event.preventDefault取消提交事件,因此现在您需要在验证后手动处理提交,而不仅仅是返回 然后,您可以使用AJAX之类的工具来完成实际的提交。请参阅Keerthi的方法,了解提交表单的非AJAX方式
请记住,如果您执行$'myForm'。submit或类似操作,它只会运行原始函数进行验证并导致循环。event.preventDefault;停止执行。为表单提供id并添加$'formid'。提交;而不是你回来 编辑:
将按钮类型更改为button而不是submit,以便表单仅在验证后提交。您需要查看$.submit函数 如果您阻止默认值,您甚至可以阻止单击传播,因此提交肯定不会触发。您要做的是捕获submit事件 $'myForm'.submitfunction{validate;return;} 或者,您需要在单击处理程序中手动调用submit
$("#btnSubmit").on("click",function(event){
event.preventDefault();
alert("validation complete");
$('#myForm).submit();
});
因此,您阻止默认提交,因此当您验证并通过时,您是提交表单、返回某些内容,还是什么都不做?您希望如何工作?@angelcool.net-preventDefault被调用-返回true会做什么?我猜您得到了event.preventDefault的概念;完全错误:这只会触发原始提交事件,导致大量循环。