我正在处理登录和注册表单,这两种表单都完美地完成了他们的工作。但我有一个问题,每当我点击注册表单时,它会检查用户输入。它不应该只是简单地重定向到注册表单,但它不是。
<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>
这有什么问题导致这个问题???
答案 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 />
novalidate
和formnovalidate
内容属性为boolean attributes。如果存在,则表明在提交过程中不对表单进行验证。
如果您的注册按钮是一个简单的重定向,则它不需要是服务器端控件。只需将其设为链接,然后将其设置为按钮样式:
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>