comment vérifier un particulier asp.net le contrôle de validation est-elle valable?
Dans un formulaire web, il existe différents asp.net les contrôles de validation. Est-il possible de vérifier un particulier contrôle de validation est-elle valable ? Par exemple en sortant de l'accent de la zone de texte, je vais d'abord vérifier requiredFieldValidatorUserName est-elle valable ? Si elle est valide, alors je vais vérifier sur le serveur à l'aide d'ajax que ce nom d'utilisateur n'est pas déjà réservé.
Edit:
Explication: je veux vérifier la validité (que l'entrée est valide) d'un contrôle de validation côté client.
Veuillez guide.
Pourquoi ne pas vous faire côté serveur de validation pour les deux de vos besoins , je ne suis pas sûr , si vous pouvez le faire à la validation d'un contrôle de validation.
Si vous souhaitez vérifier avant de publier ce que vous devez faire que côté client. Pour quelque chose comme le champ obligatoire programme de validation, vous devriez être en mesure de définir EnableClientScript="true" et il faut la valider immédiatement après avoir quitté la zone de texte.
Awais, je l'ai mentionné que je veux faire de l'ajax travail 🙂 pensez-vous que je devrais aller pour serveur /
Si vous souhaitez vérifier avant de publier ce que vous devez faire que côté client. Pour quelque chose comme le champ obligatoire programme de validation, vous devriez être en mesure de définir EnableClientScript="true" et il faut la valider immédiatement après avoir quitté la zone de texte.
Awais, je l'ai mentionné que je veux faire de l'ajax travail 🙂 pensez-vous que je devrais aller pour serveur /
OriginalL'auteur user576510 | 2011-06-22
Vous devez vous connecter pour publier un commentaire.
Le meilleur moyen serait d'utiliser un
CustomValidator
avec du code côté client, ce qui permettra d'afficher tous les messages d'erreur, la forme de la soumission et de veiller à ce que la validation est répété sur le côté serveur - rappelez-vous, juste parce que vous avez la validation côté client disponible, ne signifie pas que l'utilisateur vu: Toujours valider votre entrée sur le serveur ainsi.Votre
CustomValidator
serait alors codé pour appeler les méthodes Ajax, et permettrait d'afficher les messages d'erreur correctement pour le client:Et votre ClientValidationFunction devrait ressembler à quelque chose comme:
(Évidemment, vous aurez besoin d'écrire le ajaxCallUserNameTaken méthode à appeler à votre page de méthode/web service/etc.)
Cette façon de faire permettra de s'assurer que les méthodes de validation se passer comme prévu, ce sera appelée chaque fois que l'utilisateur onglets de la zone de texte laissant une valeur (elle n'est pas appelée si la zone de texte est vide), et de s'assurer que l'utilisateur ne peut pas envoyer la page jusqu'à ce qu'ils fournissent une valeur unique. Vous aurez également besoin de créer la méthode référencée dans
OnServerValidate
pour s'assurer que la valeur du bien une fois qu'il frappe le serveur de trop - ce qui devrait appeler le même code que l'AJAX point de terminaison utilise afin de réduire la duplication de code, etc.J'ai été à l'origine de suggérer que vous pouvez utiliser la
Page_Validators
objet sur le côté client de faire quelques vérifications dans leonBlur
événement, mais je ne pense pas vraiment que c'est approprié ici, car les résultats en plus de la douleur:OnBlur
si un utilisateur se déplace d'un contrôle sans réglage de la valeur que si elles ensemble et effacer la valeur, de sorte que même siisvalid
esttrue
, vous devez vérifier qu'une chaîne vide!OriginalL'auteur Zhaph - Ben Duguid
Tous les contrôles de validateur de mettre en œuvre IValidator qui contient la propriété IsValid.
Non désolé, soit j'ai manqué req. ou c'était une fin de ajouter.
OriginalL'auteur The Evil Greebo
Vous pouvez le faire en définissant la ValidationGroup pour le Validateur de contrôle que vous voulez à considérer comme séparé des autres. Assurez-vous qu'il correspond à la ValidationGroup du contrôle de validation (votre nom de domaine).
Oui, mais vous semblez vouloir le vérifier séparément pour les autres sur la page, par opposition à tous à la fois (via AJAX ou autre)
OriginalL'auteur Widor
J'ai juste été confrontés à la même question, et j'ai Mis
CausesValidation="true"
pour le contrôle de zone de texte et cela a fonctionné. Juste lui donner un essai 🙂OriginalL'auteur Muhammad Akhtar
J'ai été déconner avec ce autour un peu et trouvé un plutôt facile (pas très efficace) solution pour gérer cela à l'aide de jQuery.
Utiliser cette fonction pour vérifier la validité de votre contrôle:
si vous utilisez
Display="Dynamic"
sur votre validateur alors la fonction est comme suit:Assurez-vous de vérifier la véritable ID de votre validator si vous utilisez une Masterpage, car il sera différent de celui dans votre IDE. Le faire en affichant la source de la page dans votre navigateur.
La meilleure solution sera bien sûr de valider votre formulaire d'une autre manière, à l'aide de JavaScript ou d'une CustomValidator qui vous permet d'écrire votre propre code.
OriginalL'auteur user3617804