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 :

fonction javascript executee a l'insu de mon plein gré


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 247
    Points : 78
    Points
    78
    Par défaut fonction javascript executee a l'insu de mon plein gré
    Bonjour,
    j'ai réalisé quelques fonctions pour verifier un formulaire avant sa soumission.
    Toyt d'abord une fonction qui verifie si un des champs est vides,si c'est bon elle appelle une autre fonction qui verifie si le format de l'adresse mail est bon. Si c'est encore ok, appell d'une fonction qui vérifie le format du code postal. Si c'est bon appel d'une fonction qui demande confirmation avant de soumettre le formulaire.
    Voici le code
    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
     
    <script type="text/javascript">
    //<!--[CDATA[
     
    //fonction qui verifie si un champ du formulaire est vide
    function confirm_formulaire(){
    	var societe=document.getElementById("societe").value;
    	var adresse=document.getElementById("adresse").value;
    	var cp=document.getElementById("cp").value;
    	var ville=document.getElementById("ville").value;
    	var nom=document.getElementById("nom").value;
    	var prenom=document.getElementById("prenom").value;
    	var mail=document.getElementById("mail_client").value;
    	var tel=document.getElementById("tel").value;
    	var nb=document.getElementById("nb").value;
    	if(societe==""){ alert('le champ société est vide'); return false;}
    	else if(adresse==""){ alert('le champ "adresse" est vide');return false;}
    	else if(cp==""){  alert('le champ "code postal" est vide');return false;}
    	else if(ville==""){  alert('le champ "ville" est vide');return false;}
    	else if(nom==""){  alert('le champ "nom" est vide');return false;}
    	else if(prenom==""){  alert('le champ "prenom" est vide');return false;}
    	else if(mail==""){  alert('le champ "mail" est vide');return false;	}	
    	else if(tel=""){alert("un champ est vide");return false;}
    	else if(nb=="0"){alert("le nombre de carnet est incorrect");return false;}
    	else {return confirm_mail();}
     
     
    }
    //si formulaire non vide, vérifie le format de l'adresse mail
    function confirm_mail(){
    	var mail=document.getElementById("mail_client").value;
    	var expReg=/^[a-z\d]+((\.|-|_)[a-z\d]+)*@((?![-\d])[a-z\d-]{0,62}[a-z\d]\.){1,4}[a-z]{2,6}$/gi; 
    	if (! expReg.test(mail)){
    		alert("veuillez verifier le format de l'adresse mail");return false;
    	}	
    	else{
    		return confirm_cp();
    	}
    }
     
    //si adresse mail ok --->vérifie le format du code postal
    function confirm_cp(){
    	var cp=document.getElementById("cp").value;
    	var expReg=/^[0-9]{5}$/;
    	if (! expReg.test(cp)){
    		alert("veuillez verifier le format du code postal");return false;
    	}	
    	else{
    		return confirm_saisie();
    	}
    }
     
    //si code postal ok --->demande confirmation
    function confirm_saisie(){
    	if(confirm("Le client va être créé.\nSouhaitez vous poursuivre ? ")){
    		return true;
    	}
    	else {
    		return false;
    	}
    }
     
     
    //]]-->
    </script>
    Tout ceci fonctionne SAUF QUE quand le format du code postal n'est pas respecté, le message d'erreur s'affiche. Une fois corrigé et le formulaire revalidé la fenêtre indiquant que le format de l'adresse mail est invalide s'affiche alors que le format est bon...Quand on revalide de nouveau sans rien changer...ça passe. Pourquoi cette deuxième alerte pour le format du mail quand le code postal a été mauvais s'affiche ?

    Merci pour votre aide.

  2. #2
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    Bonjour,

    Un petit HTML serait le bienvenu notamment pour voir comment tu déclenches tes fonctions, par quel(s) évènement(s).

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 247
    Points : 78
    Points
    78
    Par défaut
    voici le formulaire:
    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
     
    <form method="post" action="creation.php" onsubmit="return confirm_formulaire();">
    <fieldset>
    <legend>Informations sur la soci&eacute;t&eacute;</legend>
    <label for="societe">nom de la soci&eacute;t&eacute; :</label>
    <input type="text" name="societe" id="societe"/><br/>
    <label for="adresse">adresse de la soci&eacute;t&eacute; :</label>
    <input type="text" name="adresse" id="adresse" size="50"/><br/>
     
    <label for="cp">code postal :</label>
    <input type="text" name="cp" id="cp"/>
     
    <label for="ville">ville :</label>
    <input type="text" name="ville" id="ville"/><br/><br/>
    </fieldset>
    <br/>
    <fieldset>
    <legend>Personne r&eacute;f&eacute;rente</legend>
    <label for="civilite">civilit&eacute; :</label>
    <select name="civilite" id="civilite">
    <option value="M">M.</option>
    <option value="Mme">Mme</option>
    <option value="Melle">Melle</option>
    </select><br/>
    <label for="nom">nom du client :</label>
    <input type="text" name="nom" id="nom"/><br/>
     
    <label for="prenom">pr&eacute;nom du client :</label>
    <input type="text" name="prenom" id="prenom"/><br/>
     
     
    <label for="mail">mail du client :</label>
    <input type="text" name="mail" id="mail_client"/><br/>
     
     
    <label for="tel">t&eacute;l&eacute;phone :</label>
    <input type="text" name="tel" id="tel"/><br/><br/>
    </fieldset>
     
    <br/>
     
    <fieldset>
    <legend>Achat de carnet</legend>
    <label for="nb">Nombre de carnet achet&eacute;s:</label>
    <select name="nb" id="nb">
    	<?php   
            for($i=0;$i<11;$i++){
                    echo"<option value=$i> $i</option>";
            }
            ?>
    </select>
    </fieldset>
    <br/>
     
    <br/>
    <input type="submit" value="creer"/>
    </form>

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 662
    Points
    66 662
    Billets dans le blog
    1
    Par défaut
    y'as des trucs qu'i m'echappent à la base ...

    pourquoi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function confirm_saisie(){
    	if(confirm("Le client va être créé.\nSouhaitez vous poursuivre ? ")){
    		return true;
    	}
    	else {
    		return false;
    	}
    }
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function confirm_saisie(){
     return confirm("Le client va être créé.\nSouhaitez vous poursuivre ? "))
    }

    et puis un switch true au lieu de la tripotée de if else ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    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
    else {return confirm_mail(mail);}
     
     
    }
    //si formulaire non vide, vérifie le format de l'adresse mail
    function confirm_mail(mail){
     
     
    	var expReg=/^[a-z\d]+((\.|-|_)[a-z\d]+)*@((?![-\d])[a-z\d-]{0,62}[a-z\d]\.){1,4}[a-z]{2,6}$/gi; 
    	if (! expReg.test(mail)){
    		alert("veuillez verifier le format de l'adresse mail");
    		return false;
    	}	
    	else{
    		return confirm_cp();
    	}
    }
    pb de cache de ta fct onsubmit...!
    PS : mets aussile formulaire en paramètres...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 247
    Points : 78
    Points
    78
    Par défaut
    Citation Envoyé par Matthieu2000 Voir le message
    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
    else {return confirm_mail(mail);}
     
     
    }
    //si formulaire non vide, vérifie le format de l'adresse mail
    function confirm_mail(mail){
     
     
    	var expReg=/^[a-z\d]+((\.|-|_)[a-z\d]+)*@((?![-\d])[a-z\d-]{0,62}[a-z\d]\.){1,4}[a-z]{2,6}$/gi; 
    	if (! expReg.test(mail)){
    		alert("veuillez verifier le format de l'adresse mail");
    		return false;
    	}	
    	else{
    		return confirm_cp();
    	}
    }
    pb de cache de ta fct onsubmit...!
    PS : mets aussile formulaire en paramètres...
    tu penses que c'est un pb de cache ? Comment y remédier ?
    je rajoute this comme paramètre dans la fonction onsubmit ?
    Merci

  7. #7
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    Citation Envoyé par enzostar Voir le message
    je rajoute this comme paramètre dans la fonction onsubmit ?
    Merci
    oui

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 247
    Points : 78
    Points
    78
    Par défaut
    cela ne change strictement rien...

Discussions similaires

  1. formulaire stylé à l'insue de mon plein gré
    Par php_de_travers dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 29/10/2008, 10h36
  2. Réponses: 4
    Dernier message: 30/05/2007, 18h05
  3. Données validées a l'insu de mon plein gré!
    Par USnico dans le forum IHM
    Réponses: 4
    Dernier message: 21/05/2007, 23h16
  4. appel xmlservice via fonction javascript
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 06/05/2003, 14h24

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