2013-06-18 100 views
-1

我想控制即使用戶正確填寫表單。所以,我將我的提交按鈕中的JavaScript控件添加到click事件中。在我的表單中,有很多asp.net控件,我也有一個安全代碼。所以,我寫了一個web方法工作順利。但是,如果用戶錯誤地填寫了安全碼字段,我的「返回false」代碼不起作用,並且頁面回覆。下面是我的javascript代碼:javascript「return false」不起作用

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

AJAX是**異步**,這意味着*'checkFacebookRegister'完成後'done'回調將發生*。 – zzzzBov

+0

AJAX沒有問題。在這一行之後,我調用名爲** checkSecurityCode **的PageMethods。在這一行中,問題發生了 –

+0

問題是,名爲** checkSecurityCode **的頁方法返回_CallBackFailed_,但refurn false不起作用 –

回答

1

你想要移動return false;外面的AJAX調用,或者重構代碼,讓你有整個函數,而不是整個灑他們一個return false