2010-02-09 4 views
2

Voici un cas curieux: J'ai un formulaire avec plusieurs contrôles d'entrée de données. Un sous-ensemble de ces contrôles peut être montré/caché en cochant une case. Tous les contrôles et leurs validateurs associés appartiennent à un groupe de validation appelé "Avancé", tout comme le bouton "Soumettre un bouton" et un "ValidationSummary".Modification des contrôles ASP.Net Validation pour ignorer les champs cachés JavaScript

Le fait est que je ne veux pas que le sous-ensemble de champs soit validé s'il est caché; ils ne sont requis que s'ils sont visibles. Une manière vraiment désagréable de le faire serait d'avoir un autre bouton asp: qui est montré/caché avec les champs supplémentaires, et le bouton de soumission normal est affiché/caché, mais ajouter dans un autre couple de sous-ensembles de champs et il devient un peu brouillon ...

Des pensées? Aimerait bien coller avec mon éprouvée contrôle de validation ...

Merci,

Mike K.

Répondre

0

Voir this question. Vous devez désactiver les validateurs lorsque les contrôles qu'ils ont validés sont masqués. Les deux réponses montrent comment désactiver les validateurs côté client et côté serveur.

1

Pouvez-vous le configurer de sorte que lorsque vous définissez les champs pour vous « cachés » Désactiver également la validation?

protected void chkBoxChecked(object sender, Eventargs e) { 
    validationControl.Enabled = false; 
} 

Bien sûr, vous devez vous assurer que notre case à cocher avait sa propriété AutoPostBack définie sur True;

Si vous voulez éviter d'utiliser Postback/Flash, vous pourrait bien sûr probablement envelopper le tout dans un UpdatePanel, ou vous pouvez tout faire en javascript:

Using Javascript to disable validators

+0

Tout est fait avec JavaScript (par opposition à la fumée et les miroirs), comme une tentative de minimiser PostBack. –

+1

essayez-le en javascript puis: http://geekswithblogs.net/jonasb/archive/2006/08/11/87708.aspx –

+0

Je vais certainement Jack :-) –

Questions connexes