Bonjour à tous,

Ce post est là pour reccueillir vos avis/commentaires/critiques à propos de la validation d'un formulaire en VBS.

Contexte : validation de nombreux champs, dans de nombreux formulaire ; comment faire quelque chose de propre, maintenable et evolutif ?

Voici ce que je propose :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
Function valide_formulaire(nom_formulaire)
 
Dim retour
retour = true
 
	For i = 0 to Document.nom_formulaire.Elements.Count - 1 
		select case Document.nom_formulaire.Elements(i).Name
			case "nom_famille"
				If StringValide(Document.nom_formulaire.Elements(i).value) = false then
					retour = false
					msgbox "Le nom de famille ne peut comporter que des lettres", vbExclamation + vbokonly, "Saisie invalide"
				end if
			case "prenom_personne"
				If StringValide(Document.nom_formulaire.Elements(i).value) = false then
					retour = false
					msgbox "Le prénom ne peut comporter que des lettres", vbExclamation + vbokonly, "Saisie invalide"
				end if
			case "e_mail_personne"
				If EmailValide(Document.nom_formulaire.Elements(i).value) = false then
					retour = false
					msgbox "L'adresse e-mail est incorrecte !", vbExclamation + vbokonly, "Saisie invalide"
				end if
			case "identifiant_RH_personne"
				If IdentifiantRHValide(Document.nom_formulaire.Elements(i).value) = false then
					retour = false
					msgbox "L'identifiant RH doit être composé de 10 lettres puis de 5 chiffres exactement", vbExclamation + vbokonly, "Saisie invalide"
				end if
		end select
	Next 
 
	valide_formulaire = retour
 
end function
Tout cela accompagné de 3 fonctions permettant de valider un mail, un identifiant et que le champ contien uniquement du texte.

Cette fonction peut être appelée pour n'importe quel formulaire, il suffit de rajouter les cas différents pour les noms de champs.

Peut-on améliorer cela ?
Peut-on généraliser cela ?
Peut-on optimiser cela ?

Je suis tout ouie à vos critiques !!!!