-1

我想控制甚至用户正确填写表格。因此,我将提交按钮中的 javascript 控件添加到点击事件中。在我的表单中,有很多 asp.net 控件,我也有一个安全代码。因此,我编写了一个运行顺畅的 Web 方法。但是,如果用户错误地填写了安全代码字段,我的“return false”代码将不再起作用并且页面回发。这是我的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;
        }
4

1 回答 1

1

您将希望移出return false;AJAX 调用,或者重构代码,以便return false为整个函数使用一个代码,而不是在整个函数中使用它们。

于 2013-06-18T20:26:59.910 回答