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 :

Ajouter une condition avant l'envoi


Sujet :

JavaScript

  1. #21
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Ceci devrait suffire, vu ce que tu proposes:

    Code html : 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
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta charset="UTF-8">    
    <style>
         #cache {display:none}
    </style>
    </head>
    <body>
    	<form id="f" action="">
    		<hr />
    		<div>(nom)</div>
    		<label>Votre nom <input type="text" name="nom" /></label><br />
    		<hr />
    		<div>(choix)</div>
    		<label><input type="radio" name="choix" value="un" />poste be</label><br />
     		<label><input type="radio" name="choix" value="deux" />kiala be</label><br />
    		<label><input type="radio" name="choix" value="trois" />poste fr</label><br />
    		<label><input type="radio" name="choix" value="quatre" />mondial relay fr</label><br />
    		<hr />
    		<div id="cache">
    			<hr />
    			<div>(cache)</div>
    			<label>pierre <input type="text" name="pierre" /></label><br />
    			<label>feuille <input type="text" name="feuille" /></label><br />
    			<label>ciseau <input type="text" name="ciseau" /></label><br />
    		</div>
    		<hr />
     		<input type="submit" />
    	</form>
     
     
    <script>
     
    document.querySelector("#f").addEventListener("submit",(e)=>{
            const check={
                    nom : /[a-z]{2,}/i.test(e.target.nom.value),
            choix : Array.from(e.target.choix).some(v=>v.checked),
            cache : Array.from(document.querySelectorAll("#cache input")).every(v=>/[a-z]{2,}/i.test(v.value)),
            };
        for(i in check){
                    if(!check[i]){
                            e.preventDefault();
                            alert(`Le champ ${i} est mal renseigné.`);
                            return false;
                    }
            }
            alert("Tout est OK.");
    })
     
    document.querySelectorAll("input[name='choix']").forEach(v=>{
            v.addEventListener("click",()=>{
                    document.querySelector("#cache").style.display="block";
            })
    })
     
    </script>
     
    </body>
    </html>
    http://javatwist.imingo.net/validons.htm

  2. #22
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    348
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 348
    Points : 54
    Points
    54
    Par défaut
    bonsoir
    un grand merci pour le code
    mais cela ne corresponds plus a mon attende
    en effet si le client choisit par poste il ne devra pas rentrer les même infos que si cela est par kiala ou mondial relay

  3. #23
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Ok => Maj: http://javatwist.imingo.net/validons.htm

    Code html : 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
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta charset="UTF-8">    
     
    <style>
    .hide {display:none}
    </style>
    </head>
    <body>
    	<form id="f" action="">
    		<div>
    		<hr />
    		<div>(nom)</div>
    		<label>Votre nom <input type="text" name="nom" /></label><br />
    		<hr />
    		<div>(choix)</div>
    		<label><input type="radio" name="choix" value="poste be" />poste be</label><br />
     		<label><input type="radio" name="choix" value="kiala be" />kiala be</label><br />
    		<label><input type="radio" name="choix" value="poste fr" />poste fr</label><br />
    		<label><input type="radio" name="choix" value="mondial relay fr" />mondial relay fr</label><br />
    		<hr />
    		<div class="hide" id="cache0">
    			<hr />
    			<div>(renseignements poste be)</div>
    			<label>pierre <input type="text" name="pierre" /></label><br />
    			<label>feuille <input type="text" name="feuille" /></label><br />
    			<label>ciseau <input type="text" name="ciseau" /></label><br />
    			<label>oiseau <input type="text" name="oiseau" /></label><br />
    		</div>
    		<div class="hide" id="cache1">
    			<hr />
    			<div>(renseignements kiala be)</div>
    			<label>pierre <input type="text" name="pierre" /></label><br />
    			<label>feuille <input type="text" name="feuille" /></label><br />
    			<label>ciseau <input type="text" name="ciseau" /></label><br />
    		</div>
    		<div class="hide" id="cache2">
    			<hr />
    			<div>(renseignements poste fr)</div>
    			<label>pierre <input type="text" name="pierre" /></label><br />
    			<label>feuille <input type="text" name="feuille" /></label><br />
    			<label>ciseau <input type="text" name="ciseau" /></label><br />
    			<label>marteau <input type="text" name="marteau" /></label><br />
    		</div>
    		<div class="hide" id="cache3">
    			<hr />
    			<div>(renseignements mondial relay fr)</div>
    			<label>pierre <input type="text" name="pierre" /></label><br />
    			<label>feuille <input type="text" name="feuille" /></label><br />
    		</div>
    		<hr />
     		<input type="submit" />
    		</div>
    	</form>
     
     
    <script>
     
    document.querySelector("#f").addEventListener("submit",(e)=>{
            const check={
                    nom : /[a-z]{2,}/i.test(e.target.nom.value),
            choix : Array.from(e.target.choix).some(v=>v.checked),
            cache : Array.from(document.querySelectorAll("#cache input")).every(v=>/[a-z]{2,}/i.test(v.value)),
            };
        for(i in check){
                    if(!check[i]){
                            e.preventDefault();
                            alert(`Le champ ${i} est mal renseigné.`);
                            return false;
                    }
            }
            alert("Tout est OK.");
    })
     
    document.querySelectorAll("input[name='choix']").forEach((v,i)=>{
            v.addEventListener("click",()=>{
                    document.querySelectorAll(".hide").forEach(v2=>{
                            v2.style.display="none"
                    });
                    document.querySelector("#cache"+i).style.display="block";
            })
    })
     
    </script>
     
    </body>
    </html>

    Reste à affiner tes tests de saisie sur les champs texte en fonction de ce que tu veux;

  4. #24
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    348
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 348
    Points : 54
    Points
    54
    Par défaut
    bonjour
    ah cette fois cela fonctionne a merveille
    encore un tout tres grand merci

    je vais essayer de l insérer dans mon bon de commande a présent

    bonne journee

  5. #25
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Non, problème de nommage des sections cachées: je vais changer ça pour que le test ait bien lieu...

  6. #26
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Alors, tu vas ajouter une class .vu
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .hide {display:none}
    .vu {display:block}

    Le 3e élément de l'objet check est un peu modifié
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    const check={
    		nom : /[a-z]{2,}/i.test(e.target.nom.value),
            choix : Array.from(e.target.choix).some(v=>v.checked),
            renseignements : Array.from(document.querySelectorAll(".vu input")).every(v=>/[a-z]{2,}/i.test(v.value)),
    	};

    ainsi que le gestionnaire des boutons
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    document.querySelectorAll("input[name='choix']").forEach((v,i)=>{
    	v.addEventListener("click",()=>{
    		document.querySelectorAll("div[id^=cache]").forEach(v2=>{
    			v2.classList.replace("vu","hide");
    		});
    		document.querySelector("#cache"+i).classList.replace("hide","vu");
    	})
    })

    (voir lien précédent)

  7. #27
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    348
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 348
    Points : 54
    Points
    54
    Par défaut
    ah super
    cela semble fonctionner a merveille
    un tout très grand merci pour cette aide
    je vais essayer d intégrer tout cela dans le bon de commande
    bonne journée

  8. #28
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    pense aussi à donner un name unique à chaque input caché, histoire que la récupération serveur ne pose pas problème;

  9. #29
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    348
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 348
    Points : 54
    Points
    54
    Par défaut
    oui oui je regarde cela un peu plus tard
    encore un tout tres grand merci

Discussions similaires

  1. [X3-V7] Comment ajouter une condition dans un etat d'impression
    Par nac mhb dans le forum SAGE
    Réponses: 1
    Dernier message: 09/03/2020, 08h58
  2. [AC-2003] Comment Ajouter Une condition a un code de fermeture automatique ?
    Par taz devil dans le forum IHM
    Réponses: 2
    Dernier message: 23/09/2015, 11h51
  3. [XSLT 2.0] comment ajouter une condition ?
    Par khoukhain dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 14/04/2015, 13h48
  4. [Drupal] Comment ajouter une condition presave pour un type de contenu?
    Par maxwel56 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 26/04/2012, 18h25
  5. comment ajouter une condition if dans code VBA
    Par misig dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 13/12/2007, 00h03

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