¿Qué hay de malo con esta función de desenfoque?

Tengo esta función de desenfoque como se muestra a continuación y la primera vez no se comprueba y cuando el texto cambia por segunda vez, funciona

 function ShowAvailability() { var userName = $("#"); $("#").blur(function () { userName = $(this).val(); if (userName.length < 5) { $("#mesg")[0].innerHTML = ""; } else { $.ajax({ type: "POST", url: "Default.aspx/CheckUserName", data: '{userName: "' + $("#")[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 = ""; } 

Este es mi cuadro de texto:

   *  

Aquí lo estoy comprobando:

   _ 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 

Envolver la función

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

En

 $(document).ready(function(){ //.. your code here )}; 

Puede ser que el DOM no se haya cargado y que el evento no sea vinculante la primera vez. El contenedor document.ready se asegurará de que el DOM se haya cargado

escriba esta función en keydown o presione la tecla en lugar de que el evento keyup esté funcionando.