我想为我的网站创建一个注册页面。
我有三个文本框,一个用于用户名,另一个用于密码,第三个用于重复密码。
<asp:TextBox ID="UserName" runat="server"></asp:TextBox>
<asp:TextBox ID="PassWord" runat="server"></asp:TextBox>
<asp:TextBox ID="RE-Pass" runat="server"></asp:TextBox>
现在我想检查这三个文本框的值。
对于第一个文本框,我应该通过连接到数据库来检查它的值,以检查它的唯一性。对于其他两个文本框,我应该检查它们的值是否相同。
我用过模糊事件,但它是客户端(javascript)事件而不是服务器端事件。
如何使用模糊事件或任何其他方式检查这些值?
答案 0 :(得分:1)
这不是一项微不足道的任务。显然你应该在服务器端进行检查。您可以onblur
处理ajax calls。您可以使用jquery ajax来执行此操作。
希望我帮忙!
答案 1 :(得分:1)
只需使用ASP.net validator controls。
对于密码文本框,请使用CompareValidator控件。
来自MSDN:
将输入控件中用户输入的值与 值输入另一个输入控件或具有常量值。
你需要的是:
<asp:textbox ID="Textbox1" runat="server" TextMode="Password"></asp:textbox>
<asp:textbox ID="Textbox2" runat="server" TextMode="Password"></asp:textbox>
<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="No Match." ControlToValidate="Textbox1" ControlToCompare="Textbox2"></asp:CompareValidator>
对于用户名文本框,您可以使用自定义验证程序控件。
你需要的是:
ASPX页面
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Invalid User Name" ControlToValidate="TextBox3"
OnServerValidate="CustomValidator1_ServerValidate"></asp:CustomValidator>
代码背后
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
bool userNameIsValid = true; // Database check here.
if (userNameIsValid)
args.IsValid = true
else
args.IsValid = false;
}
这是MSDN上的tutorial,它描述了使用此控件来验证针对数据库的用户输入。