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 :

Vérification de la valeur d'un champ avant envoie du formulaire.


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2015
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2015
    Messages : 68
    Par défaut Vérification de la valeur d'un champ avant envoie du formulaire.
    Bonjour,

    J'ai un soucis au niveau de mon Javascript. Je souhaite que si l'utilisateur indique une valeur négative ou nulle dans le champ soit une phrase apparait indiquant que la valeur est impossible et le formulaire n'est pas envoyé, soit un pop-up avec un alert apparait et le formulaire ne s'envoie pas non plus.

    Par la suite je ferai la vérification en PHP aussi.

    Mon code :

    HTML :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <form method='post' action='panier.html' onsubmit='pasNegatif();'>
    <input type='hidden' name='id_article' value='$article[id_article]'>
    <input type='hidden' name='id_promo' value='$promo[id_promo]'>
    <input type="submit" name="ajout_panier" value="Ajouter au panier" class="bouton btn_ajoutPanierFA">
    <input type='text' name='quantite' value='1' id='quantite'>
    <p onclick='Objet.plus();'>+</p>
    <p onclick='Objet.moins();'>-</p>
    </form>

    JS:
    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
     
    var Objet = {
    plus : function(){
    		var ajoutQuantite = document.getElementById('quantite');
    		ajoutQuantite.value = parseInt(ajoutQuantite.value)+1;
    	},
    	moins : function(){
    		var soustraireQuantite = document.getElementById('quantite');
    		soustraireQuantite.value = parseInt(soustraireQuantite.value)-1;
    	},
    	pasNegatif : function(){
       if(parseInt('quantite') > 0)
          return true;
       else
       {
          alert("Quantité nulle ou négatif impossible.");
          return false;
       }
    	}	
    }
    Et si vous voulez vérifier directement en testant, le codepen :

    http://codepen.io/anon/pen/XbxOwo

    Merci.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    au moins deux choses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method='post' action='panier.html' onsubmit='pasNegatif();'>
    la fonction pasNegatif() n'existe pas il s'agit sûrement de Objet.pasNegatif().
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(parseInt('quantite') > 0)
    mais d'où sort quantite ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2015
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2015
    Messages : 68
    Par défaut
    Erreur d'inattention de ma part d'avoir oublié l'Objet...

    Sinon le 'quantite' vient d'ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='text' name='quantite' value='1' id='quantite'>
    Donc maintenant la fonction pasNegatif fonctionne mais le formulaire s'envoie quand même.

    nouveau codepen avec correction:

    http://codepen.io/anon/pen/QbZPjR

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Donc il te faut écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(parseInt(document.getElementById('quantite')) > 0)
    de plus il te faut également mettre un return dans ton submit pour annuler l'action par défaut
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" action="panier.html" onsubmit="return Objet.pasNegatif();">

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2015
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2015
    Messages : 68
    Par défaut
    C'est bon tout fonctionne.

    Mon formulaire ne s'envoie pas quand c'est faux, pile ce que je voulais, merci !

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

Discussions similaires

  1. Vérification chgt de valeur dans un champ texte
    Par steph_p dans le forum IHM
    Réponses: 2
    Dernier message: 09/09/2008, 09h28
  2. Réponses: 7
    Dernier message: 06/07/2006, 15h32
  3. Valeur d'un champ d'un sous-formulaire
    Par lito74 dans le forum IHM
    Réponses: 2
    Dernier message: 14/06/2006, 17h40
  4. Réponses: 8
    Dernier message: 08/02/2006, 09h13
  5. Réponses: 1
    Dernier message: 22/12/2005, 11h29

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