event.preventDefault();不像我期望的那样工作

时间:2015-07-09 21:51:34

标签: javascript jquery

我想在提交'在提交页面之前单击此表单上的按钮。

验证函数按预期调用并执行;但之后不提交表格,保留未更改的更改。

以下是代码的一部分 -

$j("#btnSubmit").on("click",function(event){
            event.preventDefault();
            alert("validation complete");
            return;
}); 

<button type="submit"  name="btnSubmit" id="btnSubmit"  value="btnSubmit"> </button> 

3 个答案:

答案 0 :(得分:1)

您已使用event.preventDefault()取消提交活动,因此现在您需要在验证后手动处理提交,而不是仅仅执行return

然后您可以使用类似AJAX的内容来进行实际提交。有关非AJAX提交表单的方式,请参阅Keerthi的方法。

请注意,如果您执行$('#myForm').submit()或类似的操作,请执行原始功能以验证并导致循环。

答案 1 :(得分:1)

event.preventDefault();停止执行。在表单中添加id并添加$('#formid').submit();,而不是return

编辑:

将按钮类型更改为按钮而不是提交,以便仅在验证后提交表单。

答案 2 :(得分:1)

您需要查看$().submit()功能。

如果您preventDefault()即使传播也停止了点击,那么提交绝对不会触发。您要做的是捕获提交事件

$('#myForm').submit(function(){ validate(); return; })

或者您想在点击处理程序中手动调用提交

$("#btnSubmit").on("click",function(event){
    event.preventDefault();
    alert("validation complete");
    $('#myForm).submit();
});