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érifier un champ input


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 90
    Par défaut vérifier un champ input
    Bonjour,

    J'ai une page qui permet d'effectuer le retour de produit. J'affiche le libelle du produit, la quantité qui avait été commandée.Si je souhaite en renvoyer un produit, je coche la checkox correspondante et je rentre la quantité que je veux renvoyer(si un meme produit a été commandé plusieurs fois et que l'on désire en renvoyer qu'un seul par exemple).
    Je n'arrive pas à tester si la quantité saisie (quantité d'un produit à renvoyer) est supérieure à la quantité qui avait été commandée afin d'afficher un message d'erreur.Cela fonctionne parfois pour le premier produit, j'ai l'impression que je ne récupère pas toutes les quantités.

    Pour la quantité à renvoyer : Je récupère la valeur saisie dans le input de type text

    Pour la quantité qui avait été commandée: Je récupère la valeur dans un input de type hidden

    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
     
    <script>
    function saisie()
    {
       var quantite=document.getElementById('quantite').value;
       var id_produit=document.getElementById('id_produit');
       var quantite_hidden=document.getElementById('quantite_hidden');
       var element2 = null; 
       var taille = document.forms['formulaire'].elements.length; 
     
     
    	for (i=0;i<taille;i++)
    	{
    		element2 = document.forms['formulaire'].elements[i]; 
     
    		if(element2.name == "quantite_hidden") 
    		{
     
    			if(quantite>element2.value)  //si la quantité saisie est supérieure à la quantité qui avait été commandée
    			{
    			    alert("La quantité saisie est supérieure à celle commandée");	
    			      return false;
    			}
    		}	
     
    	}
     
    }
    </script>
     
    <form name="formulaire" action="traitement.php" method="post" onsubmit="return saisie();">
     
    <?php
    //mon formulaire
    echo'<input size="5" type="text" name="quantite['.$id_produit.']" value="'.$quantite.'"  id="quantite"  />'
    echo'<input type="hidden" name="quantite_hidden['.$id_produit.']" value="'.$quantite.'" id="quantite_hidden" />';
    echo'<input type="checkbox" name="id_produit[]" value="'.$id_produit.'"  id="id_produit" />';
    echo'<input type="submit" name="retour" value="Valider la demande de retour"  />';
     
    ?>
    </form>

  2. #2
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Bonsoir,
    tu pourais peut être essayer ceci :
    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
     
    <script>
    function verif_saisie(quantite, quantite_hidden)
    {
    	if ((quantite*1) > (quantite_hidden*1)) //si la quantité saisie est supérieure à la quantité qui avait été commandée
    		{
    		alert("La quantité saisie est supérieure à celle commandée");
    		return false;
    		}
    }	
    </script>
     
    <form name="formulaire" action="traitement.php" method="post">
    <input size="5" type="text" name="quantite[]" value=""  id="quantite_1" onkeyup="verif_saisie(document.getElementById('quantite_1').value, document.getElementById('quantite_hidden_1').value) ;" onfocus="this.value='';" />
    <input type="hidden" name="quantite_hidden[]" value="5" id="quantite_hidden_1" />
    <input type="checkbox" name="id_produit[]" value="1"  id="id_produit_1"  />
    <input type="submit" name="retour" value="Valider la demande de retour"  />
    </form>

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 90
    Par défaut
    J'ai essayé avec ton code mais cela e fonctionnait pas trop, donc j'ai refait quasiment la meme fonction simplifiée.Je n'arrive pas à récupérer toutes les quantités passées dans le input de type hidden (correspondants à chaque produit).Je récupère uniquement la valeur de la première quantité qui correspond à un produit, donc le test sur la quantité fonctionne seulement pour le premier produit affiché et pas pour les autres.
    En d'autres termes, je n'arrive pas à comparer le champ quantite_hidden au champ quantite d'une même ligne.

    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
     
    <script>
    function saisie()
    {
       var quantite=document.getElementById('quantite').value;
       var quantite_hidden=document.getElementById('quantite_hidden').value;
     
     
       if(quantite>quantite_hidden)
       {
          alert("La quantité saisie est supérieure à celle commandée");   
          return false;
       }
    }
     
    </script>
     
    <form name="formulaire" action="traitement.php" method="post" >
     
    <?php
    //mon formulaire
    //boucle while pour afficher
    echo'<input size="5" type="text" name="quantite['.$id_produit.']" value="'.$quantite.'"  id="quantite" onKeyUp="return saisie();" />';
    echo'<input type="hidden" name="quantite_hidden['.$id_produit.']" value="'.$quantite.'" id="quantite_hidden" />';
    echo'<input type="checkbox" name="id_produit[]" value="'.$id_produit.'"  id="id_produit" />';
    echo'<input type="submit" name="retour" value="Valider la demande de retour"  />';
     
    ?>
    </form>

  4. #4
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Bonjour,
    Je pense que çà vient que tes "id" portent toutes le même nom;
    Essayes de rajouter ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    id="quantite_'.$id_produit.'"

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 90
    Par défaut
    j'ai toujours le meme problème, je pense qu'il faut peut etre faire varier l'id_produit mais je vois pas trop comment.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    <script>
    var id_produit=document.getElementById('id_produit').value;
    var quantite=document.getElementById('quantite_'+id_produit).value;
    var quantite_hidden=document.getElementById('quantite_hidden_'+id_produit).value;
     
    </script>

  6. #6
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Essayes ceci :

    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
     
    <script>
    function saisie()
    {
       var quantite=document.getElementById('quantite_<?php echo $id_produit ; ?>').value;
       var quantite_hidden=document.getElementById('quantite_hidden_<?php echo $id_produit ; ?>').value;
     
     
       if(quantite>quantite_hidden)
       {
          alert("La quantité saisie est supérieure à celle commandée");   
          return false;
       }
    }
     
    </script>

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/04/2013, 00h05
  2. Vérifier si un champ input est vide
    Par almoha dans le forum Langage
    Réponses: 2
    Dernier message: 12/02/2011, 10h13
  3. Vérifier le contenu d'un champ input (type Float)
    Par ironfalcon dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/08/2008, 10h20
  4. comment recuperer deux valeurs de deux champs input
    Par trialrofr dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/02/2005, 22h08
  5. Problème de contrôle de champ input texte
    Par NATHW dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/10/2004, 22h48

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