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 :

Fenêtre de confirmation


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Points : 8
    Points
    8
    Par défaut Fenêtre de confirmation
    Bonjour,

    J'ai un formulaire de devis que l'utilisateur complète.
    Un code Javascript fait les calculs (qté, tva etc...)
    Un bouton submit envoie ensuite mon formulaire vers une page php pour l'inscription dans une BDD.

    Je me suis apperçu que certains utilisateurs avaient la fâcheuse habitude d'utiliser la touche "Enter" pour passer d'un champs à l'autre. Résultat le formulaire était envoyé avant d'être finalisé.

    J'aimerais donc soit désactiver momentanément "Enter" soit faire apparaître une fenêtre de confirmation de manière à annuler avant envoi.

    J'ai essayé ça mais ça ne fonctionne pas:
    La fenêtre apparaît mais que l'on choisisse OK ou annuler le formulaire est envoyé.

    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
    function verifjs()
    {
        return window.confirm('Voulez-vous vraiment envoyer le devis?'); 
    }
    function soumettre_form() {
        if ( document.forms.form1.totalgeneral.value == 0 ) {
            window.location.replace('epro_afficher_liste_preference.php');
    	alert ("Vous n'avez rien commandé !\n => commande non soumise") ;
            return false ;
        } else {
            // Les 2 lignes ci-dessous devraient être activées pour réellement passer le form. à script CGI
            document.form1.method = "post" ;
            document.form1.action = "insert_entree_offre.php" ;
            document.close () ;
            return true ;
        }
    }
    mon bouton submitje vous fais grâce des km de formulaires)
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <INPUT TYPE="SUBMIT" VALUE=" Enregistrer l'offre " onClick="verifjs()">
    </form>

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Bonjour,

    Utilise plutôt l'attribut onsubmit sur l'élément form plutôt que onclick sur l'input submit. Tu couvriras ainsi tous les moyens de soumettre le formulaire, y compris la touche Entrée. Ensuite dans la fonction verifjs, plutôt qu'un message de confirmation tu peux parcourir les champs du formulaire et vérifier qu'ils ne sont pas vides ou au mauvais format. Enfin il existe en HTML5 des attributs required à ajouter à tes input. Le formulaire sera bloqué au submit automatiquement tant que ces champs ne seront pas renseigné.
    One Web to rule them all

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Cette ligne n'est pas bon:
    document.forms.form1.totalgeneral.value
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms["form1"].totalgeneral.value
    Et ensuite
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <form onsubmit=" return verifjs();">

    A+.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par SylvainPV Voir le message
    Bonjour,

    Utilise plutôt l'attribut onsubmit sur l'élément form plutôt que onclick sur l'input submit. Tu couvriras ainsi tous les moyens de soumettre le formulaire, y compris la touche Entrée. Ensuite dans la fonction verifjs, plutôt qu'un message de confirmation tu peux parcourir les champs du formulaire et vérifier qu'ils ne sont pas vides ou au mauvais format. Enfin il existe en HTML5 des attributs required à ajouter à tes input. Le formulaire sera bloqué au submit automatiquement tant que ces champs ne seront pas renseigné.
    Merci pour tes conseils,
    J'ai un script plus haut qui vérifie chaque champs imputés avec onblur avant de faire le calcul de la ligne. Ca c'est OK.
    Je ne peux pas faire de "required", l'utilisateur n'est pas obligé de tout remplir, mais si il en rempli 1 il faut qu'il soit bien fait. Mais tout ça fonctionne. C'est juste cette µ*ù^*%# de touche Enter qui m'enbête.
    Je vais essayer vos conseils.

  5. #5
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Bonjour,

    Cette ligne n'est pas bon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms.form1.totalgeneral.value
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms["form1"].totalgeneral.value
    Pardon mais quelle est la différence entre ces lignes ? Pour moi elles ont exactement le même sens.
    One Web to rule them all

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par SylvainPV Voir le message
    Pardon mais quelle est la différence entre ces lignes ? Pour moi elles ont exactement le même sens.
    C'est différent, forms est un tableau, il n'a pas de propriété form1 mais.

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Re,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     if ( document.forms.form1.totalgeneral.value == 0 ) { // à part ma remarque précédente, value est un String et 0 est un entier.
            window.location.replace('epro_afficher_liste_preference.php'); // ça va rediriger la page.
    	alert ("Vous n'avez rien commandé !\n => commande non soumise") ;
            return false ;
        }
    A+.

  8. #8
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    C'est différent, forms est un tableau, il n'a pas de propriété form1 mais.
    C'est effectivement une Array mais on lui attribue également les attributs name des formulaires pour y accéder. Les deux lignes sont équivalentes, ça constitue les deux moyens d'accéder à une propriété d'un objet :

    http://jsfiddle.net/DUun5/
    One Web to rule them all

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Andry, forms n'est pas exactement un tableau, c'est plus précisément une collection. Elle possède donc certaines propriétés spécifiques comme l'indique SylvainPV et parmi celles-ci, l'accès direct possible à ses membres.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. [PHP-JS] Fenêtre de confirmation
    Par Mathieu72 dans le forum Langage
    Réponses: 4
    Dernier message: 10/02/2007, 16h42
  2. Réponses: 4
    Dernier message: 22/01/2007, 15h06
  3. Réponses: 5
    Dernier message: 26/09/2006, 08h20
  4. Réponses: 2
    Dernier message: 07/09/2006, 12h41
  5. [Struts]Fenêtre de confirmation
    Par djoukit dans le forum Struts 1
    Réponses: 2
    Dernier message: 09/06/2004, 12h42

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