因为ajax是异步的,所以按照常规的写法,即使验证返回了false,表单也会被submit。
需要进行如下设置
function checkDate() { var result = true; //定义返回标识 $.ajax({ async: false, //设置为同步 type: "post", url: "/Mall/Channel/CheckChannelDate", data: { startDate: $("#PayStartTime").val() }, success: function (data) { if (data != 'ok') { alert(data); result = false } } }); return result; //在ajax方法外层返回true or false }