登录和注册按钮都验证用户输入

时间:2017-06-30 13:57:20

标签: c# html asp.net

我正在处理登录和注册表单,这两种表单都完美地完成了他们的工作。但我有一个问题,每当我点击注册表单时,它会检查用户输入。它不应该只是简单地重定向到注册表单,但它不是。

<form class="login-form" runat="server">
    <div class="form-group">
        <label class="sr-only" for="form-username">Username</label>
        <asp:TextBox ID="UserName" placeholder="Username..." class="form-control" runat="server" required=""></asp:TextBox>
    </div>
    <div class="form-group">
        <label class="sr-only" for="form-password">Password</label>
        <asp:TextBox ID="Password" placeholder="Password..." type="password" class="form-control" runat="server" required=""></asp:TextBox>

    </div>
    <asp:Button ID="BtnLogin" type="submit" class="btn" runat="server" Text="Login" OnClick="BtnLogin_Click" />
    <asp:Button ID="BtnRegister" class="btn" CausesValidation="false" runat="server" Text="Register" OnClick="BtnRegister_Click" />
</form>

这有什么问题导致这个问题???

1 个答案:

答案 0 :(得分:1)

您的注册按钮正在提交表单,就像所有ASP按钮一样,您输入的required属性将在表单提交上验证。 CausesValidation将不会执行任何操作,因为它是ASP.Net属性(并与ASP.Net验证器一起使用),而required属性验证是HTML5客户端事件。

尝试在注册按钮上添加formnovalidate属性:

<asp:Button ID="BtnRegister" class="btn" CausesValidation="false" runat="server" Text="Register" OnClick="BtnRegister_Click" formnovalidate />

W3 Reference:

  

novalidateformnovalidate内容属性为boolean attributes。如果存在,则表明在提交过程中不对表单进行验证。

OR ...

如果您的注册按钮是一个简单的重定向,则它不需要是服务器端控件。只需将其设为链接,然后将其设置为按钮样式:

a.register-btn {
  display: inline-block;
  background-color: red;
  color: white;
  text-decoration: none;
  border-radius: 3px;
  padding: 6px;
  font-family: 'Arial';
  font-weight: bold;
}
<a href="/register.aspx" class="register-btn">Register</a>