js方法内Ajax请求数据判断,验证无效(OnClientClick="return Method();"),还是直接执行后台代码

function CheckAdd() {
 var flag = true;
    $.ajax({
            cache: false,
            async: false,
            url: "/ajaxpage/getajax.aspx?t=adjserviceclientlist&Cellphone=" + Cellphone + "&a=" + Math.random(),
            dataType: 'json',
            success: function (data) {
                if (data != null) {
                    var result = data["Remark"];
                    if (result == '此号码已经存在并且已经绑定了主号,不能再次绑定!') {
                        alert(result);
                        flag = false;
                    }
                    if (result == '此号码已经存在,确定要绑定到主号上吗?') {
                        if (confirm('此号码已经存在,确定要绑定到主号上吗?')) {
                            $('#MainContent_Hiddend_IsExitCellPhone').val('1');
                        } else {
                            flag = false;
                        }
                    }
                }
            }
    })
    if (!flag) {
        return false;
    }
}


 <asp:Button ID="Button4" runat="server" Text="提  交"  OnClick="btnAddCustomer_Click" OnClientClick="return CheckAdd();" />


问题一:ajax默认为异步执行,所以,当执行ajax时,其实也在执行后台方法了。如:

async: false即为同步了。


问题二:ajax请求返回的数据里,进行判断,不能直接进行 return false操作,需要赋值,请求方法外执行。如:

if (!flag) {
        return false;
    }




js方法内Ajax请求数据判断,验证无效(OnClientClick="return Method();"),还是直接执行后台代码,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。