我在Chrome和Linux中的ASP.NET 4应用程序遇到了一些问题。 Safari(适用于Firefox和IE)。
我使用以下代码声明了一个按钮:
<asp:Button ID="btnEOI1" runat="server" CssClass="buttonCSS" Text="Lodge an Expression of Interest"
OnClick="btnEOI_Click" CausesValidation="False" />
在代码隐藏文件中,我有以下代码:
protected void btnEOI_Click(object sender, EventArgs e)
{
Response.Redirect("Default.aspx", true);
}
页面上还有一个LoginControl,它有两个RequiredFieldValidators和一个RegularExpressionValidator:
<asp:requiredfieldvalidator id="UserNameRequired" runat="server" ControlToValidate="UserName"
ErrorMessage="Please enter your User Name." SetFocusOnError="true" Display="None">
</asp:requiredfieldvalidator>
<asp:RegularExpressionValidator runat="server" id="RegularExpressionValidator1"
ControlToValidate="UserName"
ErrorMessage="Please enter your User Name without spaces." ValidationExpression="[\S]+"
Display="None" SetFocusOnError="true" >
</asp:RegularExpressionValidator>
<asp:requiredfieldvalidator id="PasswordRequired" runat="server" ControlToValidate="Password"
ErrorMessage="Please enter your Password." SetFocusOnError="true" Display="None">
</asp:requiredfieldvalidator>
当我点击Chrome和Safari中的按钮时,即使按钮具有CausesValidation =“false”,也会触发UserNameRequired和PasswordRequired验证器。 IE或Firefox中不会出现验证错误。
如何阻止验证程序在Chrome和Firefox中启动?
答案 0 :(得分:1)
我刚刚在空白页面中测试了您的代码,它在所有浏览器中都能正常运行。
无论如何,你可以尝试使用Validation Groups。
只需为UserNameRequired,RegularExpressionValidator1,PasswordRequired和登录按钮设置相同的组。
答案 1 :(得分:1)
事实证明,我们有一些javascript用于防止双击提交表单[0](在这种情况下是登录控件)。
答案 2 :(得分:0)
我不确定这是否与您的问题相关,但发现RequiredFieldValidators
设置Display="Dynamic"
时出现问题。
删除它修复了我在Chrome
中无法正确显示某些验证程序的问题。过去还有其他情况,其中添加有助于解决问题。