【问题标题】:ASP:NET Confirm Password fieldASP:NET 确认密码字段
【发布时间】:2013-05-30 13:09:56
【问题描述】:

我在 asp.net 中创建了一个简单的注册表单。 这是我的问题: 如果我的确认密码字段为空,它仍会提交表单。我正在使用 compareToValidate 是否还需要使用 requiredvalidator。我是 asp.net 的新手,但如果假设密码为 123 且确认密码为空,那么 comparevalidator 不应该生成错误。

        <fieldset>
       <legend>Enter your data</legend>
       <table>
        <tr>
       <td align="right">User Name :</td>
       <td>&nbsp;</td>
         <td align="left">
        <asp:TextBox ID="tbUsername" runat="server"></asp:TextBox>
    <asp:RequiredFieldValidator ID="rfvUserName" runat="server" 
        ControlToValidate="tbUsername" 
        CssClass="ValidationError"
        ErrorMessage="&laquo; (Required)"
        ToolTip="User Name is a REQUIRED field"
        ></asp:RequiredFieldValidator>
        </td>
</tr>`enter code here`
<tr >
<td align="right">Password&nbsp;:&nbsp;</td>
<td>&nbsp;</td>
<td align="left"> 
    <asp:TextBox ID="tbPassword" runat="server" TextMode="Password"></asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
     ErrorMessage="&laquo; (Required)" 
     ControlToValidate="tbPassword"
     CssClass="ValidationError"

    ToolTip="Password is a REQUIRED field"
    ></asp:RequiredFieldValidator>
</td>

</tr>
<tr >
<td align="right">Confirm Password&nbsp;:&nbsp;</td>
<td>&nbsp;</td>
<td align="left"> 
    <asp:TextBox ID="ConfirmPass" runat="server" TextMode="Password"></asp:TextBox>
     <asp:CompareValidator ID="CompareValidator1" runat="server" 
     ControlToValidate="ConfirmPass"
     CssClass="ValidationError"
     ControlToCompare="tbPassword"
     ErrorMessage="No Match" 
     ToolTip="Password must be the same" />

</td>

</tr>

【问题讨论】:

    标签: asp.net webforms


    【解决方案1】:

    您还必须提供必需的验证器!比较验证器只会将值与目标控件进行比较并提醒用户。

    <td align="left"> 
        <asp:TextBox ID="ConfirmPass" runat="server" TextMode="Password"></asp:TextBox>
    
        <asp:CompareValidator ID="CompareValidator1" runat="server" 
         ControlToValidate="ConfirmPass"
         CssClass="ValidationError"
         ControlToCompare="tbPassword"
         ErrorMessage="No Match" 
         ToolTip="Password must be the same" />
    
        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
         ErrorMessage="&laquo; (Required)" 
         ControlToValidate="ConfirmPass"
         CssClass="ValidationError"
         ToolTip="Compare Password is a REQUIRED field">
        </asp:RequiredFieldValidator>
    </td>
    

    希望对您有所帮助!

    【讨论】:

    • 验证器上的工具提示,当它们在错误发生之前不可见时,你不觉得有点没有意义吗?
    【解决方案2】:

    恕我直言,这正是它应该做的。 CompareValidator 控件用于将一个输入控件的值与另一个输入控件的值或固定值进行比较。

    如果输入控件为空,则不调用验证函数并且验证成功。使用 RequiredFieldValidator 控件来防止用户跳过输入控件。

    参考:http://msdn.microsoft.com/en-us/library/db330ayw(v=vs.100).aspx

    【讨论】:

      【解决方案3】:

      简单方法 它真的有效 &lt;asp:CompareValidator runat="server" ID="Comp1" ControlToValidate="tbPassword" ControlToCompare="ConfirmPass" Text="Password mismatch" Font-Size="11px" ForeColor="Red" /&gt;

      【讨论】:

        猜你喜欢
        • 2012-12-02
        • 1970-01-01
        • 2016-11-19
        • 2011-10-22
        • 2012-03-29
        • 2014-06-14
        • 1970-01-01
        • 2017-09-15
        • 2017-09-01
        相关资源
        最近更新 更多