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 :

GetElementsByName


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Points : 6
    Points
    6
    Par défaut GetElementsByName
    Bonjour,

    J'ai des input générés dynamiquement et qui ont le même nom "code" et dans lequel il faut saisir des nombres. La valeur par défaut est 0.
    Avant de valider le formulaire, il faut que je vérifie qu'au moins un nombre a été saisi dans un des "input" "code".

    Je pense donc que si je fais la somme des valeurs saisies dans les "input" "code" et que celle-ci est supérieure à 0 alors cela signifie qu'au moins un nombre a été saisi dans un "input" mais je ne réussis pas à faire cette somme.

    J'ai essayé comme ceci dans un premier temps:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var tab = document.getElementsByName('code');
    var total = 0;
     
     for (i=1; i<tab.length; i++) 
     { 
     var num = document.getElementsByName('code')[i].value;
     total += num;
     }
    Mais sans résultats.

    Auriez-vous une piste?

    Merci

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 662
    Points
    66 662
    Billets dans le blog
    1
    Par défaut
    Quelle est l'erreur retournée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var num = tab[i].value;
     total += num*1;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var num = tab[i].value;
     total += Number(num);
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Avec mon code, cela me retourne :

    Par exemple, si j'ai 10 fois le champ input d'affiché avec 10 fois la valeur à 0 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    total = 0000000000;
    Si je saisie la valeur "2" dans le 2ème input et les autres restent à 0 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    total = 0020000000;

  4. #4
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    bonjour,

    value retourne une chaine de caractères. Donc tu réalises une concaténation et non une somme. Fais comme te le suggère Spacefrog :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var num = tab[i].value;
     total += Number(num);

    ou
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var num = parseFloat(tab[i].value);
     total += num;

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    J'ai testé tes 2 codes et cela fonctionne mais je n'en comprends pas la signification?

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Les messages se sont croisés. Effectivement je ne réalisais pas que value renvoyait une chaine de caractères.
    Avec parseFloat, je comprends. Cela va me convertir ma chaine de caractères en nombre.
    En revanche, je ne saisie pas ce qui se passe avec Number.

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 662
    Points
    66 662
    Billets dans le blog
    1
    Par défaut
    ben ça convertit de string a nombre ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    J'ai fait une recherche sur le net mais je suis tombée sur une explication différente c'est pour ça que je ne comprenais pas.

    Merci!

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 662
    Points
    66 662
    Billets dans le blog
    1
    Par défaut
    Ha quelle explication ?
    une autre feature de Number ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. [getElementsByName] fonctionnement ?
    Par banzzai dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/06/2006, 15h45
  2. GetElementsByName.length différent entre IE et FireFox
    Par seb34 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 14/06/2006, 17h13
  3. getElementsByName
    Par stela86 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/05/2006, 15h16
  4. Probème vec getElementsByName
    Par richton95 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 22/04/2006, 21h45
  5. getElementsByName ou getElementById
    Par lepierre dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/10/2004, 15h44

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