IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

validation de formulaire


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 324
    Par défaut validation de formulaire
    Bonjour,

    j'ai un formulaire (pages asp) dont le résultat doit être traité par une autre pages ASP

    Sur ce formulaire j'ai des contrôles de validation en javascript
    C'est contrôle marche bien mais dans tous les cas (même si il y a une erreur) le formulaire est quand même envoyé si je clique sur le bouton submit de celui-ci

    Voici les éléments du code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name=formulaire action="InscriptionAdminUpdate5.asp" method="post">
    le script

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    <script language="JavaScript">
     
    // Fonction de blocage de la saisie si elle n'est pas conforme
    function bloque(formulaire,champ) {
    // Creation d'un raccourci pour manipuler le champ
    	var controle = eval('document.' + formulaire + '.' + champ);
     
    // On se place sur le champ incrimine
    	controle.focus();
     
    // On selectionne le contenu pour faciliter la reprise de la saisie
    	controle.select();
    	}
     
     
    // Fonction de controle des champs vides
     
    // Debut du message qui sera affiche en cas d'un ou plusieurs champ(s) vide(s)
    var mess = "Les champs suivants sont necessaires au traitement de votre demande :\n";
     
    // Copie pour reinitialisation
    var mess_init = "Les champs suivants sont necessaires au traitement de votre demande :\n";
     
    // Variable marquant l'erreur (0 : tout va bien, 1 : blocage demande)
    var necessaire = 0;
     
    function vide(formulaire,champ,alerte) {
     
    // Creation d'un raccourci pour manipuler le champ a tester
    	var controle = eval('document.' + formulaire + '.' + champ);
     
     
    // Si c'est un champ de type mot de passe
    	if ( controle.type == 'password' ) {
    		if ( controle.value.length < 1 ) {
    			mess += alerte;
    			mess += "\n";
    			necessaire = 1;
    			}
    		}
     
    	}
     
     
    // Fonction de validation du formulaire
    function resultat(formulaire) {
     
    // Si on a marque qu'au moins un champ etait vide
    	if ( necessaire == 1 ) {
     
    // Affichage du message d'erreur avec tous les champs en erreur
    		alert(mess);
    		}
     
    // Si aucun champ n'est vide
    	if ( necessaire == 0 ) {
    		var formu = eval('document.' + formulaire);
     
    // Validation du formulaire
    		formu.submit();
    		}
     
    // Quoi qu'il arrive, on re-initialise le message d'erreur pour permettre un autre passage des tests
    	mess = mess_init;
    	necessaire = 0;
    	}
     
     
    // Fonction de controle de validite de la saisie
    // Creation d'une variable pour marquer s'il y a incoherence de saisie ou pas
    var probleme = 0;
     
    function validite(formulaire,champ,format,mini,maxi) {
     
    // Initialisation de la variable
    	probleme = 0;
     
    // Les differents tests possibles :
     
    	 RE = /^[A-Za-zàâäéèêëîïôùûç\s,'0-9\-]+$/;
     
     
    // Creation d'un raccourci pour manipuler le champ a tester
    	var controle = eval('document.' + formulaire + '.' + champ);
     
    // On ne fera les tests que si le champ est rempli d'au moins un caractere (pas vide)
    	if (controle.value.length > 0) {
     
    // Si on ne trouve pas dans le champ l'expression reguliere recherchee
    		if (!RE.test(controle.value)) {
     
    // Envoi d'une alerte
    			alert('Votre saisie est incorrecte.');
     
    // On marque que la saisie n'est pas coherente
    			probleme = 1;
    			}
     
    // Tests de longueur du champ (nombre de caracteres saisis)
    // Si il a ete specifie '0', le test n'est pas effectue
    		if ( mini != 0 ) {
     
    // Si la longueur de la saisie est inferieure au minimum demande
    			if ( controle.value.length < mini || controle.value.length > maxi ) {
     
    // Envoi d'une alerte
    				alert('Vous devez saisir entre 8 et 15 caractères alphanumériques');
    			probleme = 1;
    				}
    		}
     
    // Si on a marque qu'il y avait un probleme
    		if ( probleme == 1 ) {
     
    // On active le blocage du champ
    			bloque(formulaire,champ);
    			}
    		}
    	}
     
     
    // Fonction pour verifier la coherence de deux saisies de mot de passe
    // Cette fonction se declenche a partir du second champ uniquement
    function check_pw(formulaire,champ1,champ2) {
    // Creation de deux raccourcis pour manipuler les champ a comparer
    	var prems = eval('document.' + formulaire + '.' + champ1);
    	var deuze = eval('document.' + formulaire + '.' + champ2);
     
    // Si le premier champ n'est pas rempli
    	if (!prems.value) {
     
    // Envoi d'une alerte
    		alert('Vous n\'avez pas saisi votre mot de passe');
     
    // On active le blocage du champ
    		bloque(formulaire,champ1);
    		}
     
    // Si le premier champ est rempli
    	else {
     
    // Si la saisie des deux champ est differente
    		if ( prems.value != deuze.value ) {
     
    // Envoi d'une alerte
    			alert('La confirmation de votre mot de passe n\'est pas exacte.');
     
    // Reinitialisation des deux champs
    			deuze.value = "";
    			prems.value = "";
     
    // On active le blocage du champ
    			bloque(formulaire,champ1);
    			}
    		}
    	}
     
    // Fonction pour tester les champs vides (une ligne par champ)
    // Pour autoriser un champ vide, ne pas le referencer dans la liste
    function check_vide() {
    	vide('formulaire','Password2','- Votre mot de passe');
    	vide('formulaire','Password3','- Confirmation du mot de passe');
     
    // Validation (sous conditions) du formulaire
    	resultat('formulaire');
    	}
     
    </script>

    L'appel du script sur le bouton validez

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="Validez" OnClick="check_vide();">

    Merci pour votre aide

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 275
    Par défaut
    Essaie de mettre un return false après tes messages d'alertes qui font suite à une erreur lors de la vérification des contrôles

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 324
    Par défaut suite
    c'est beaucoup mieux

    Merci

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 275
    Par défaut
    Effectivement, sans ces "return false;", le comportement va être d'exécuter le contrôle avant de faire un submit.

    De plus, il faut bien effectuer les contrôles dont tu as besoin sur la validation du formulaire, quelque soit la manière dont elle est faite.

  5. #5
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    En général, on utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form .... onSubmit="return check_vide()">
     ... //check_vide devant retourner true si la vérification est ok, false sinon
    </form>
    plutot que de faire la vérification sur le onclick du bouton. Ca permet de valider aussi quand l'utilisateur valide son formulaire par la touche entrée et pas à la souris.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. validation du formulaire de la page ouvrante d'un popup
    Par noa dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/08/2005, 12h11
  2. Réponses: 5
    Dernier message: 24/05/2005, 11h21
  3. Valider un formulaire contenu dans une iframe
    Par snoopy5.0 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/04/2005, 11h14
  4. Valider un formulaire par une image
    Par Fleep dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 31/10/2004, 01h50
  5. [Struts]Validation de formulaire
    Par djoukit dans le forum Struts 1
    Réponses: 4
    Dernier message: 12/03/2004, 09h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo