2010-04-23 8 views
6

J'ai un menu déroulant où l'utilisateur sélectionne un pays. C'est un "champ" obligatoire.Activer/désactiver RequiredValidator sur le côté client/CustomValidator ne se déclenche pas

À côté de lui, il y a un champ de texte nommé State. Si l'utilisateur sélectionne US, le champ State est requis. Si l'utilisateur sélectionne par ex. Suède, l'Etat n'est pas nécessaire, puisque la Suède n'a pas d'états.

code Exemple:

<asp:DropDownList runat="server" ID="Country"></asp:DropDownList> 
<asp:RequiredFieldValidator ControlToValidate="Country" 
       runat="server" Display="Static" ErrorMessage="Required field" /> 

<asp:TextBox runat="server" ID="State"></asp:TextBox> 
<asp:CustomValidator ClientValidationFunction="DoesntGetFiredIfStateIsEmpty" 
       runat="server" Display="Static" ErrorMessage="Required field" /> 

<!-- SO, RATHER THIS TOGETHER WITH CONDITIONAL FIRING --> 
<asp:RequiredFieldValidator ControlToValidate="State" 
       runat="server" Display="Static" ErrorMessage="Required field" /> 

Ma question est la suivante: Comment puis-je faire cette validation de feu CustomValidator quand il est vide?

Ou mettre plus simple: Comment puis-je effectuer un feu RequiredValidator conditionnellement?

Ou plus simple: Comment puis-je activer/désactiver un RequiredValidator sur le côté client?

Répondre

10

Essayez de faire cela avec javascript pour activer et désactiver validateurs

ValidatorEnable(RequiredFieldValidatorId, false); 

Check out this question that I answered.

+0

A semblé plein d'espoir, mais je reçois "val.style est indéfini" dans le JS généré par ASP.NET ... – Simeon

+1

Je l'ai fonctionné. Le validateur avait un parent avec display: none; définir dessus, ce qui a cassé la fonctionnalité de ValidatorEnable. – Simeon

+5

Le premier paramètre est en fait censé être le validateur lui-même, pas l'identifiant du validateur. – Itison