2010-01-13 6 views
3

J'ai une page ASP.NET avec une boîte de dialogue jQuery qui est affichée pour modifier certaines données. Je configure la boîte de dialogue jQuery de sorte que lorsque l'utilisateur clique sur le bouton OK, il appelleASP.NET: Comment "réinitialiser" la validation après avoir lancé Page_ClientValidate

Page_ClientValidate('validationGroup') par javascript, trouve tous les contrôles non valides et modifie leur classe CSS. Voici donc le scénario: l'utilisateur ouvre la boîte de dialogue, saisit certaines données non valides, clique sur OK (réception des messages de validation), puis sur Annuler.

Maintenant, la boîte de dialogue est fermée, mais les messages de validation sont toujours là, de sorte que quand ils ouvrent la boîte de dialogue, les données retournent à leur état initial, mais le formulaire est toujours invalide. les messages sont toujours affichés).

Ce dont j'ai besoin, c'est d'une fonction de réinitialisation des sortes à appeler après avoir appelé Page_ClientValidate('validationGroup'). Est-ce que cela existe? Pourquoi ne supprimez-vous pas simplement les messages de validation lorsque l'utilisateur clique sur Annuler?

+0

duplication possible de [Réinitialiser un contrôle de validation asp.net via javascript?] (Http://stackoverflow.com/questions/2915830/reset-an-asp-net-validation-control-via-javascript) – Liam

Répondre

1

Vous pouvez appeler la fonction côté client ValidatorValidate(validatorObj) pour forcer la validation à se déclencher à nouveau sur un validateur spécifique. Si vous réinitialisez (effacez) les valeurs de formulaire à ce que les validateurs attendent par défaut, puis que vous les initialisez avec la fonction ValidatorValidate, cela ne pose aucun problème. Voir documentation here.

+0

Merci pour votre aide, Nicholas. C'est très apprécié. –

0

+0

Je suppose Je pourrais, mais il semble qu'il devrait y avoir une fonction de réinitialisation. Si je devais supprimer les messages lorsque l'utilisateur clique sur annuler, je devrais les rajouter quand je voulais valider à nouveau, et c'est plus impliqué que je voulais obtenir. Je suppose qu'à ce stade, c'est ma solution de repli, cependant. –

2

Pourquoi ne pas vous mettre l'un autour des entrées dans votre boîte de dialogue et d'utiliser un bouton de réinitialisation pour annuler

<input type="reset" value="Cancel" /> 

Modifier:

si votre commande de dialogue sont déjà remis à zéro, re -valide lors de l'ouverture de la boîte de dialogue.

+0

Merci pour votre aide. –

1
  1. Donnez à vos validateurs ID séquentiels tels que validator1, validator2, etc.

  2. Exécutez le suivant code javascript pour cacher le message d'erreur:

    var n = 0; 
    var z = ''; 
    
    for (var i = 0; i < Page_Validators.length; i++) { 
        n += 1; 
        z = 'ctl00_MainContent_validator' + n; 
        document.getElementById(z).style.visibility = 'hidden'; 
    } 
    

    Cette boucle permet de faire défiler vos validateurs et masquer tous les messages d'erreur précédemment affichés.

  3. Lorsque vous appuyez sur un bouton d'envoi, les validateurs réapparaissent et affichent à nouveau les messages d'erreur pour toute validation qui échoue.

Voila.

Questions connexes