2010-10-08 15 views
1

J'ai des problèmes avec mon application ASP.NET 4 dans Chrome & Safari (fonctionne dans Firefox et IE).Les validateurs de champs obligatoires déclenchent dans Chrome & Safari lorsque le bouton a CausesValidation = "false"

J'ai un bouton déclaré en utilisant le code suivant:

<asp:Button ID="btnEOI1" runat="server" CssClass="buttonCSS" Text="Lodge an Expression of Interest" 
         OnClick="btnEOI_Click" CausesValidation="False" /> 

Dans le fichier code-behind je le code suivant:

protected void btnEOI_Click(object sender, EventArgs e) 
{ 
    Response.Redirect("Default.aspx", true); 
} 

également sur la page est un LoginControl qui a deux RequiredFieldValidators et un 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> 

Lorsque je clique sur le bouton i Dans Chrome et Safari, les validateurs UserNameRequired et PasswordRequired se déclenchent même si le bouton a CausesValidation = "false". Les erreurs de validation ne se produisent pas dans IE ou Firefox.

Comment puis-je empêcher les valideurs de se déclencher dans Chrome et Firefox?

+0

Avez-vous une mise à jour vers la dernière bibliothèque ajax d'asp.net? – Aristos

+0

Nous utilisons actuellement les bibliothèques standard installées avec .NET Framework 4.0. – Anthony

Répondre

1

Il s'est avéré que nous avions un javascript utilisé pour empêcher le double-clic de soumettre le formulaire [0] (qui dans ce cas est le contrôle de connexion).

+0

J'ai le même problème avec un RadioButtonList http://stackoverflow.com/questions/7248780/required-field-validator-with-safari-5-1 où la validation se déclenche une fois que l'utilisateur sélectionne une valeur dans la liste , mais ne clique pas sur le bouton "Envoyer" Avez-vous trouvé la cause de ce problème? – suggy1982

+0

@ suggy1982 - dans mon cas c'était parce que nous faisions un submit sur le formulaire [0] dans du javascript. Après avoir enlevé ce code, nous n'avons eu aucun problème entre les navigateurs. J'ai lu votre question - c'est un problème étrange. J'utilise le contrôle de l'assistant dans quelques endroits et je trouve qu'il est parfois difficile de travailler avec. – Anthony

1

Je viens de tester votre code dans une page vide et cela fonctionne correctement dans tous les navigateurs.

Néanmoins, vous pouvez essayer d'utiliser Validation Groups.

Il suffit de définir le même groupe pour UserNameRequired, RegularExpressionValidator1, PasswordRequired et votre bouton de connexion.

+0

Désolé pour le retard - mettre tous les validateurs dans un groupe de validation n'a pas résolu le problème. – Anthony

0

Je ne sais pas si cela est pertinent dans votre problème, mais avez trouvé des problèmes avec RequiredFieldValidators avec Display="Dynamic" réglé pour cela.

La suppression de ce problème m'a permis de résoudre un problème lié à l'affichage incorrect de certains validateurs dans Chrome. Alors qu'il y a eu d'autres cas dans le passé où l'ajout a aidé à résoudre un problème.