使用submit异步提交,阻止表单默认提交

<form id="addForm" onSubmit="return false;">

<input type="submit" value="保存"  onclick="saveForm()" style="margin-left:15px;">

js方法:

function saveForm() { 
     $.ajax({
            type: "POST",
            datatype: "json",
            url: cPath + "/system/appAuthUser/save.htm",
            timeout: 2000,
            async: false,
            data:$('#addForm').serialize(),// 
            error: function(request) {
                alert("数据保存失败!");
            },
            success: function(res) {
                    var data=eval("("+res+")");
                    if(data.success){
                       alert("数据保存成功!");
                       refresh();
                    }else{
                        alert(data.message);
                    }
            }
        });
     return false;s
}

不可使用如下js方法

submit,会被表单上的onSubmit="return false;"阻止
$('#saveButton').submit(function() {
        $.ajax({
            type: "POST",
            datatype: "json",
            url: cPath + "/system/appAuthUser/save.htm",
            timeout: 2000,
            async: false,
            data:$('#addForm').serialize(),// 
            error: function(request) {
                alert("数据保存失败!");
            },
            success: function(res) {
                    var data=eval("("+res+")");
                    if(data.success){
                       alert("数据保存成功!");
                       refresh();
                       return false;
                    }else{
                        alert(data.message);
                    }
            }
        });
        return false;
    }); 

如果不使用onSubmit="return false;" 则会使表单先异步提交一次,再默认提交一次。还有一种解决方案是页面不要用submit,使用button ,这样也会只异步提交一次

原文地址:https://www.cnblogs.com/winkey4986/p/4028137.html