Précédent   Forum du club des développeurs et IT Pro > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 25/02/2013, 21h36   #1
kiyeko
Invité de passage
 
Homme
Inscription : février 2013
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : février 2013
Messages : 14
Points : 3
Points : 3
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 :
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 :
1
2
<INPUT TYPE="SUBMIT" VALUE=" Enregistrer l'offre " onClick="verifjs()">
</form>
kiyeko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2013, 00h35   #2
SylvainPV
Membre expérimenté
 
Inscription : novembre 2012
Messages : 439
Détails du profil
Informations forums :
Inscription : novembre 2012
Messages : 439
Points : 572
Points : 572
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é.
SylvainPV est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2013, 07h21   #3
andry.aime
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 6 334
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 6 334
Points : 9 923
Points : 9 923
Bonjour,

Cette ligne n'est pas bon:
Citation:
document.forms.form1.totalgeneral.value
Code :
document.forms["form1"].totalgeneral.value
Et ensuite
Code html :
<form onsubmit=" return verifjs();">

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2013, 09h12   #4
kiyeko
Invité de passage
 
Homme
Inscription : février 2013
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : février 2013
Messages : 14
Points : 3
Points : 3
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.
kiyeko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2013, 10h26   #5
SylvainPV
Membre expérimenté
 
Inscription : novembre 2012
Messages : 439
Détails du profil
Informations forums :
Inscription : novembre 2012
Messages : 439
Points : 572
Points : 572
Citation:
Envoyé par andry.aime Voir le message
Bonjour,

Cette ligne n'est pas bon:
Code :
document.forms.form1.totalgeneral.value
Code :
document.forms["form1"].totalgeneral.value
Pardon mais quelle est la différence entre ces lignes ? Pour moi elles ont exactement le même sens.
SylvainPV est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2013, 11h11   #6
andry.aime
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 6 334
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 6 334
Points : 9 923
Points : 9 923
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.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2013, 12h57   #7
andry.aime
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 6 334
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 6 334
Points : 9 923
Points : 9 923
Re,

Citation:
Code :
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+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2013, 20h13   #8
SylvainPV
Membre expérimenté
 
Inscription : novembre 2012
Messages : 439
Détails du profil
Informations forums :
Inscription : novembre 2012
Messages : 439
Points : 572
Points : 572
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/
SylvainPV est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2013, 21h17   #9
Bovino
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 18 074
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 42
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 18 074
Points : 64 505
Points : 64 505
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 11h48.


 
 
 
 
Partenaires

Hébergement Web