2012-01-20 6 views
0

나는이 흐림 기능을 가지고 처음에 확인 나던와 텍스트가 두 번째로 변경할 때 이 흐림 기능에 문제가 있습니까? 아래 그림과 같이

<script type = "text/javascript"> 
    function ShowAvailability() { 
    var userName = $("#<%=txtUsername.ClientID %>"); 
    $("#<%=txtUsername.ClientID %>").blur(function() { 
     userName = $(this).val(); 

     if (userName.length < 5) { 
      $("#mesg")[0].innerHTML = ""; 
     } 
     else { 
      $.ajax({ 
       type: "POST", 
       url: "Default.aspx/CheckUserName", 
       data: '{userName: "' + $("#<%=txtUserName.ClientID%>")[0].value + '" }', 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: OnSuccess, 
       failure: function (response) { 
        alert(response); 
       } 
      }); 
     } 
    }); 
    } 
    function OnSuccess(response) { 
     var mesg = $("#mesg")[0]; 

     switch (response.d) { 
      case "true": 
       mesg.style.color = "green"; 
       mesg.innerHTML = "Available"; 
       break; 
      case "false": 
       mesg.style.color = "red"; 
       mesg.innerHTML = "Not Available"; 
       break; 
      case "error": 
       mesg.style.color = "red"; 
       mesg.innerHTML = "Error occured"; 
       break; 
     } 
    } 
    function OnChange(txt) { 
     $("#mesg")[0].innerHTML = ""; 
    } 
내 텍스트 상자입니다 작동합니다

<asp:TextBox ID="txtUsername" runat="server" BorderStyle="Solid" BorderWidth="1px" BorderColor="#0099CC" BackColor="#FAFFBD" AutoCompleteType="Disabled" onkeyup = "OnChange(this)" Onblur="ShowAvailability()"></asp:TextBox> 
      <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" 
      ControlToValidate="txtUsername" ErrorMessage="User Name is required." 
      ToolTip="User Name is required." 
      CssClass="signupvalidators" ForeColor="Red">*</asp:RequiredFieldValidator> 
      <span id = "mesg"></span> 
여기

나는 그것을 확인 해요 :

<System.Web.Services.WebMethod()> _ 
Public Shared Function CheckUserName(ByVal userName As String) As String 
    Dim returnValue As String = String.Empty 
    Try 
     Dim consString As String = ConfigurationManager _ 
      .ConnectionStrings("conString").ConnectionString 
     Dim conn As New SqlConnection(consString) 
     Dim cmd As New SqlCommand("spx_CheckUserAvailability", conn) 
     cmd.CommandType = CommandType.StoredProcedure 
     cmd.Parameters.AddWithValue("@UserName", userName.Trim()) 
     conn.Open() 
     returnValue = cmd.ExecuteScalar().ToString() 
     conn.Close() 
    Catch 
     returnValue = "error" 
    End Try 
    Return returnValue 
End Function 
+1

Dunno. 생성 된 소스 코드를 ASP 대신에/대신 표시 할 수 있습니까? –

+0

ShowAvailabilty 함수를 호출하는 곳 – Dau

+0

@ Rob- 생성 된 소스 코드가 무엇인지 알지 못했습니까? 사용자 이름 확인 가용성 백 엔드 코드를 의미합니까? – coder

답변

1

랩 그것은 DOM로드되지 않은 이벤트를 통해 처음으로 결합하지 않은 것 일 수

$(document).ready(function(){ 

    //.. your code here 

)}; 

펑션

$("#<%=txtUsername.ClientID %>").blur(function() { etc.. 

. document.ready 래퍼는 DOM이로드되었는지 확인합니다

+0

@ CrabBucket- 감사합니다. – coder

0

쓰기이 기능의 난 n keydown 또는 keypress 대신 키 입력 이벤트가 작동 할 수 있습니다.

+0

@ user994813- 내가 keydown으로 변경했지만 두 번째로 작업 중입니다. – coder

관련 문제