I think I am losing.
We have a requirement. Before a user signs up for a new account, ask the user to select a username. As soon as mouse leaves the box, the value the user entered is verified against the database. If the username the user entered exists on our database, display a message to the user that that name already exists and disable submit button.
If the username does not exist, display a message to the user advising the user to proceed and enable submit button.
So far, everything is working except that if I validate against a name that already exists on the database, I get a message that the name is available.
This is wrong. It should display a message that that name is taken.
Conversely, if I enter a name that doesn't exist on the db, no message is displayed.
What piece am I missing?
//Markup
<body><form id="form1" runat="server"><asp:ScriptManager runat="server" ID="sm1" /><script language="javascript" type="text/javascript"> // Hook the InitializeRequest event. Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(InitializeRequest); function InitializeRequest(sender, args) { // Change div's CSS class and text content. $get('UserAvailability').className = 'progress';$get('UserAvailability').innerHTML = 'Checking availability...';$get('Button1').disabled = true; }</script><asp:UpdatePanel runat="server" ID="up1"><ContentTemplate><label>Username:</label> <asp:TextBox runat="server" id="txtUserName" AutoPostBack="true" OnTextChanged="CheckUserNameAvailability" /><div runat="server" id="UserAvailability"></div><br /></ContentTemplate></asp:UpdatePanel><label>Password:</label> <asp:TextBox runat="server" ID="txtpwd" TextMode="password" /><br /><label>Confirm:</label> <asp:TextBox runat="server" ID="PasswordConfirm" TextMode="password" /><br /><br /><asp:UpdatePanel runat="server" ID="up2"><ContentTemplate><asp:Button runat="server" ID="Button1" Text="Sign me up!" Enabled="false" /></ContentTemplate></asp:UpdatePanel><asp:Label ID="lblmsg" runat="server"></asp:Label></form></body></html>
Codebehind:
Protected Sub CheckUserNameAvailability(ByVal sender As Object, ByVal e As EventArgs) Dim conn As New SqlConnection(ConfigurationManager.ConnectionStrings("DBConnectionString").ConnectionString) Dim cmd As New SqlCommand("select * from tblLogin where username=@user", conn) cmd.Parameters.AddWithValue("@user", txtUserName.Text) conn.Open() Dim dr As SqlDataReader System.Threading.Thread.Sleep(3000) dr = cmd.ExecuteReader() If dr.Read() Then If txtUserName.Text = dr("username").ToString() Then UserAvailability.InnerText = "Username taken, sorry." UserAvailability.Attributes.Add("class", "taken") Button1.Enabled = False Else UserAvailability.InnerText = "Username available!" UserAvailability.Attributes.Add("class", "available") Button1.Enabled = True End If End If End Sub
Thanks a lot in advance