ajax改为同步的,而且你回调return true/false没有用,并不是checkIsOvered的返回值,这样checkIsOvered返回的是undefinedif(checkIsOvered("cardno","percent")==false){return false;} //问题所在代码行就不执行,导致表单提交会中断ajax执行从而指定到error回调,改为同步的    function checkIsOvered(cardnotarget, percentTarget) {
        var customerCardNo = document.getElementById(cardnotarget).value;
        var customerPercent = document.getElementById(percentTarget).value;
        var ok = false; ///////////////////////
        $.ajax({ type: "post", async: false/*要同步执行*/, url: "../Query/repeatWarn?cardNo=" + customerCardNo + "&cpercent=" + customerPercent + "&proType=1",
         success: function (msg) {
            if (msg == "alreadyOvered") { alert("任务比例总和超过100%!"); }
            if (msg == "notOver") { ok = true; } ///////////////////
        }, error: function (msg) { alert(msg); }
        });
        return ok; ///////////////////////
    }