我想在javascript全局变量设置为0时取消提交表单:
<script type="text/javascript">
form_valid = 1;
function verifMdps() { // called in the onblur of a text input
if (!mdpEquals()) {
$('#errmsg_oldmdp').text("<?php echo _getText('service.personne.tbr_title.mdp_diff'); ?>");
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
,表单仍然会被提交!那么如何取消提交?
答案 0 :(得分:3)
使用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");
});