如何取消表单提交?

我想在javascript全局变量设置为0时取消提交表单:

 form_valid = 1; function verifMdps() { // called in the onblur of a text input if (!mdpEquals()) { $('#errmsg_oldmdp').text(""); setTimeout(function(){$('#oldmdp').focus();}, 10); form_valid = 0; } else $('#errmsg_oldmdp').text(""); } $(document).ready(function() { $("#frm").on("submit", function() { $( "input[onblur]:visible:enabled" ).each(function(){ $(this).blur(); if (form_valid == 0) return false; }); if ( mode == "ajout" ) $('#mode_').val("ajout"); else $('#mode_').val("modif"); }); 

即使我写了return false ,表单仍然会被提交! 那么如何取消提交?

使用preventDefault来阻止默认操作。

 $("#frm").on("submit", function(e) { $( "input[onblur]:visible:enabled" ).each(function(){ $(this).blur(); if (form_valid == 0) e.preventDefault(); }); if ( mode == "ajout" ) $('#mode_').val("ajout"); else $('#mode_').val("modif"); });