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 SubThanks a lot in advance