javascript“return false”不起作用

时间:2013-06-18 20:24:08

标签: javascript asp.net

我想控制甚至用户正确填写表单。所以,我将提交按钮中的javascript控件添加到click事件中。在我的形式,有很多asp.net控件,我也有一个安全代码。所以,我写一个网络方法工作顺利。但是,如果用户错误地填写了安全代码字段,我的“返回错误”代码将不再起作用,并且页面帖子会重新发布。这是我的javascript代码:

function checkFacebookRegister() {
            var error = "";
            var username = $('#<%=tbUsername.ClientID%>').val();

                pattern = new RegExp(/^[0-9a-zA-Z-_]*$/);
                if (username.length >= 4 && pattern.test(username)) {

                    jQuery.ajax({
                        method: 'GET',
                        url: 'ajax/checkUsername.aspx',
                        data: "username=" + username
                    }).done(function (data) {
                        if (data != "true") {
                            error = "Seçtiğiniz kullanıcı adı uygun değil.";
                            $('#errorDivision').show(1);
                            $('#error').html(error);
                            return false;
                        }
                    });
                } else {
                    error = "Seçtiğiniz kullanıcı adı minimum 4 karakter olmalı, Türkçe karakter bulunmayan ve noktalama işaretlerinden sadece alt tire içerecek şekilde olmalıdır.";
                    $('#errorDivision').show(1);
                    $('#error').html(error);
                    return false;
                }

                var faculty = $('#<%=ddlFaculty.ClientID%>').val();
                if (faculty == "0") {
                    error = "Şehir, Üniversite ve Fakülte bilgileri eksiksiz girilmelidir.";
                    $('#errorDivision').show(1);
                    $('#error').html(error);
                    return false;
                }

                var password = $('#<%=tbPassword.ClientID%>').val();
                var passwordConf = $('#<%=tbPasswordConf.ClientID%>').val();
                if (password.length < 6) {
                    error = "Seçtiğiniz parola en az 6 karakter olmalıdır.";
                    $('#errorDivision').show(1);
                    $('#error').html(error);
                    return false;
                    } else if (password != passwordConf) {
                        error = "Parolanız tekrarıyla uyuşmamaktadır.";
                        $('#errorDivision').show(1);
                        $('#error').html(error);
                        return false;
                    }

            var securityCode = $('#<%=tbSecurityCode.ClientID%>').val();
            **PageMethods.checkSecurityCode(securityCode, checkSecurityCallBackSuccess, checkSecurityCallBackFailed);**

            if (!$('#<%=cbUserAgreement.ClientID%>').is(':checked')) {
                error = "Üyelik Sözleşmesi' ni onaylamanız gerekmektedir.";
                $('#errorDivision').show(1);
                $('#error').html(error);
                return false;
            }
        }

        function checkSecurityCallBackSuccess(response)
        {
            if (response == false)
            {
                error = "Güvenlik kodubu yanlış girdiniz.";
                $('#errorDivision').show(1);
                $('#error').html(error);
                return false;
            }
        }

        function checkSecurityCallBackFailed(error) {            
            alert(error);
            error = "Belirlenemeyen bir hata oluştu.";
            $('#errorDivision').show(1);
            $('#error').html(error);
            return false;
        }

1 个答案:

答案 0 :(得分:1)

你想要在你的AJAX调用之外移动return false;,或者可能重构代码,这样你就可以为整个函数设置一个return false,而不是在整个函数中使用它们。