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的概念;完全错误:这只会触发原始提交事件,导致大量循环。