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 :

Lire et valider 140 champs


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 29
    Points
    29
    Par défaut Lire et valider 140 champs
    Bonjour,

    j'ai présentement un formulaire possédant 140 champs nommés text1 à text140 et j'aurais besoin d'avoir une validation et additionner les champs de nouveau (c'est déjà fait) au 'onChange' d'un des objets input de type texte.

    Je suis allé consulter la FAQ sur JavaScript et les DOM afin de m'enligner, mais sans résultat.

    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
     
    function changementSurtemps(){
    var inputList = document.formInspecteurs.elements;
     var tot = 0;
     int compteur;
     compteur = 1;
     
     for(unInput in inputList){
      if ((compteur % 4 = 0) && !(isNaN(unInput)) && compteur < 129){
       tot+= parseFloat(unInput.value);}
      else{
       Alert("Veuillez entrer seulement des valeurs numériques dans la colonne de Surtemps.");}
      compteur++;
     }
    }
    Le formulaire est composé de plusieurs lignes et toujours 4 colonnes (champs texte) par ligne et je dois avoir le total de chaque colonne, d'où vient la constante %4 (pour le quatrième champ).

    Bon, le code posté ne réagit pas et me donne des erreurs aux lignes auxquelles des changements ont été apporté.

    J'ai aussi essayer avec d'autres syntaxes similaires au code précédent et comme le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.forms['formulaireInspecteurs'].elements[compteur].value;
    mais le compileur ne semble pas pouvoir être en mesure de comiler ce code. C'est toutefois ce que je faisais à l'université..

    y aurait-il des suggestions?

  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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    complieur ..; en javascript ...

    déja un test
    serait mieux sous cette forem là :

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 29
    Points
    29
    Par défaut quelques heures plus tard...
    Bon, j'ai trouvé la bonne syntaxe au problème précédent pour me retrouver nez à nez avec un autre un peu plus emmerdant..

    Afin de vous montrer ce en quoi le nouveau problème consiste, voici une parcelle de mon code.. la moitié étant fait 'à la main' et l'autre; 'automatisée' :
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
     
    function changementTempsImprevu(){
     var tot = parseFloat(window.document.formInspecteurs.Text3.value);
     
     tot += parseFloat(window.document.formInspecteurs.Text7.value);
     tot += parseFloat(window.document.formInspecteurs.Text11.value);
     tot += parseFloat(window.document.formInspecteurs.Text15.value);
     tot += parseFloat(window.document.formInspecteurs.Text19.value);
     tot += parseFloat(window.document.formInspecteurs.Text23.value);
     tot += parseFloat(window.document.formInspecteurs.Text27.value);
     tot += parseFloat(window.document.formInspecteurs.Text31.value);
     tot += parseFloat(window.document.formInspecteurs.Text35.value);
     tot += parseFloat(window.document.formInspecteurs.Text39.value);
     tot += parseFloat(window.document.formInspecteurs.Text43.value);
     tot += parseFloat(window.document.formInspecteurs.Text47.value);
     tot += parseFloat(window.document.formInspecteurs.Text51.value);
     tot += parseFloat(window.document.formInspecteurs.Text55.value);
     tot += parseFloat(window.document.formInspecteurs.Text59.value);
     tot += parseFloat(window.document.formInspecteurs.Text63.value);
     tot += parseFloat(window.document.formInspecteurs.Text67.value);
     tot += parseFloat(window.document.formInspecteurs.Text71.value);
     tot += parseFloat(window.document.formInspecteurs.Text75.value);
     tot += parseFloat(window.document.formInspecteurs.Text79.value);
     tot += parseFloat(window.document.formInspecteurs.Text83.value);
     tot += parseFloat(window.document.formInspecteurs.Text87.value);
     tot += parseFloat(window.document.formInspecteurs.Text91.value);
     tot += parseFloat(window.document.formInspecteurs.Text95.value);
     tot += parseFloat(window.document.formInspecteurs.Text99.value);
     tot += parseFloat(window.document.formInspecteurs.Text103.value);
     tot += parseFloat(window.document.formInspecteurs.Text107.value);
     tot += parseFloat(window.document.formInspecteurs.Text111.value);
     tot += parseFloat(window.document.formInspecteurs.Text115.value);
     tot += parseFloat(window.document.formInspecteurs.Text119.value);
     tot += parseFloat(window.document.formInspecteurs.Text123.value);
     tot += parseFloat(window.document.formInspecteurs.Text127.value);
     
     window.document.formInspecteurs.Text130.value = tot;
     window.document.formInspecteurs.Text132.value = (parseFloat(window.document.formInspecteurs.Text129.value) + parseFloat(window.document.formInspecteurs.Text130.value) + parseFloat(window.document.formInspecteurs.Text131.value));
    }
    function changementSurtemps(){
     var total = 0;
     
     for(var compteur = 0; compteur<=128;compteur++)
     {
      total += parseFloat(window.document.getElementById("Text" + compteur).value)
      alert(total)
     }
     
     window.document.formInspecteurs.Text131.value = tot;
     window.document.formInspecteurs.Text132.value = parseFloat(window.document.formInspecteurs.Text129.value) + parseFloat(window.document.formInspecteurs.Text130.value) + parseFloat(window.document.formInspecteurs.Text131.value);
    }
    Bon.. la partie 'manuelle' fonctionne sans aucun problème. Toutefois, la partie automatisée me dégotte l'erreur : 'objet requis" à la ligne

    au caractère 2 (juste devant 'var')

    Et là je suis vraiment pogné dans un coin. Je ne vois absolument pas quoi faire. Ne vous gênez pas pour apporter vos idées!

    EDIT : ces fonctions sont appelés avec un 'onchange="changementSurtemps()"

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par SpaceFrog
    complieur ..; en javascript ...

    déja un test
    serait mieux sous cette forem là :
    Ouaip! Bien certainement!

    Jette un coup d'oeil rapide si le coeur t'en dit sur le nouveau bout de code que j'ai affiché. J'ai mis de côté la fonction qui m'avait été fournie pas votre FAQs sur le javascript étant donné que je ne savais trop si c'était ça qui causait le problème.

    En tout cas, la nouvelle manière de faire l'addition de tous ces champs me semble bien aussi, voir similaire.

    Qu'en dis-tu?

  5. #5
    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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    pour commencer àllège un peu ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function changementTempsImprevu(){
     
    var tot=0
    for (i=7;i<128;i=i+4){
      var tot += parseFloat(document.getElemntById('Text'+i).value);
     }
    }

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Points : 29
    Points
    29
    Par défaut
    fonctionnel.... Fouilles-moi... ça fait 5hres en ligne que j'essais de fixer cet erreur.. c'est maintenant, merci pour tes petits, mais très judicieux conseils. Je vais maintenant pouvoir adapter cette fonction afin de n'avoir qu'une seule fonction à appeler!

    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
     
     
    function changementSurtemps(colonne, champsMax){
     var total = 0;
     
     for(compteur = colonne ; compteur <= champsMax ; compteur=compteur+4)
      total += parseFloat(window.document.getElementById("Text" + compteur).value)
     
     
     if(champsMax == 128)
      window.document.formInspecteurs.Text131.value = total;
     else if (champsMax == 127)
      window.document.formInspecteurs.Text130.value = total;
     else if (champsMax == 126)
      window.document.formInspecteurs.Text129.value = total;
     
     window.document.formInspecteurs.Text132.value = parseFloat(window.document.formInspecteurs.Text129.value) + parseFloat(window.document.formInspecteurs.Text130.value) + parseFloat(window.document.formInspecteurs.Text131.value);
    }
    Merci encore,
    Ben

  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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Fouilles-moi...
    serais tu canadien ???
    quelle expression !!

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

Discussions similaires

  1. Valider un champs automatiquement
    Par inge2007 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 25/01/2007, 14h17
  2. Validation des champs
    Par Alec6 dans le forum JSF
    Réponses: 5
    Dernier message: 24/01/2007, 17h48
  3. Validation de champs ds formulaire
    Par fikou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 09/03/2006, 13h57
  4. Validation saisie champ
    Par JUZAN dans le forum Access
    Réponses: 10
    Dernier message: 20/01/2006, 18h07
  5. Réponses: 3
    Dernier message: 15/03/2005, 12h22

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