Chrome和Chrome中需要的字段验证器按钮具有CausesValidation =“false”时的Safari

时间:2010-10-08 06:28:01

标签: asp.net google-chrome safari validation

我在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中启动?

3 个答案:

答案 0 :(得分:1)

我刚刚在空白页面中测试了您的代码,它在所有浏览器中都能正常运行。

无论如何,你可以尝试使用Validation Groups

只需为UserNameRequired,RegularExpressionValidator1,PasswordRequired和登录按钮设置相同的组。

答案 1 :(得分:1)

事实证明,我们有一些javascript用于防止双击提交表单[0](在这种情况下是登录控件)。

答案 2 :(得分:0)

我不确定这是否与您的问题相关,但发现RequiredFieldValidators设置Display="Dynamic"时出现问题。

删除它修复了我在Chrome中无法正确显示某些验证程序的问题。过去还有其他情况,其中添加有助于解决问题。