Addition des saisies dans un champs text

[Résolu]
Signaler
Messages postés
127
Date d'inscription
mardi 19 août 2003
Statut
Membre
Dernière intervention
13 mars 2010
-
Messages postés
177
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
16 janvier 2009
-
Bonjour

J'ai une page avec 4 champs text dans lequel se trouvera des valeurs numériques et un dernier champs qui additionnera la saisie des 4 précédents champs.

Je voudrais savoir comment faire pour que lorsque j'inscrit des chiffres dans ces quatres champs, les chiffre inscrits viennent s'additionner dans un dernier champs.

Merci beaucoup :-)

Antho

11 réponses

Messages postés
177
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
16 janvier 2009
1
En fait voilà après tests c'est pas bien compliqué...

   
   
   
   
   

<script language="javascript" type="text/javascript">
<!--
 function addition(){
    var inputs = document.getElementById('container').getElementsByTagName('input');
    var somme = 0;    for(var i 0, length inputs.length; i < length - 1; i++){
        var value = inputs[i].value;
        if(isNaN(value)){
            inputs[i].value = value.substring(0, value.length - 2);
            return false;
        }else{
            somme += parseInt(value);
        }
    }
    inputs[inputs.length - 1].value = somme;
    return true;
}
-->
</script>
cdlt,
Pierrick
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
Bonjour,
    à priori utiliser onblur sur les champs de saisie.
    une addition tu sais faire ?   montre nous où tu en est on t'aidera à finir...
<hr />


Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
177
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
16 janvier 2009
1
Bonjour,
une solution que je ne prétend pas déclarer comme la mieux, mais en attendant:
tu déclares tes quatres champs comme ceci:

   
   
   
   
   

<script language="javascript" type="text/javascript">
<!--
function addition(){
var inputs = document.getElementById('container').getElementByTagName('input');
var somme = 0;for(var i 0, length inputs.length; i < length - 1; i++){
var value = inputs[i].value;
if(isNaN(value)){
inputs[i].value = value.substring(0, value.length - 2);
return false;
}else{
somme += parseInt(value);
}
}
inpus[inputs.length - 1].value = somme;
return true;
}
-->
</script>

Pas testé, mais a essayer...
Cdlt.
Pierrick
Messages postés
177
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
16 janvier 2009
1
Oups... désolé bultez trop rapide... et moi mère thérésa.
sorry
Messages postés
177
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
16 janvier 2009
1
Et onblur pas onkeyblur bien sur...
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
normal que je sois passé en 1er the_wwt, je n'ai fais que donner
        des indications et toi une réponse ( pas testé non plus ).
j'aurais fait autrement d'ailleurs ( comme quoi, toujours 659874 possibilités )
<hr />


Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
127
Date d'inscription
mardi 19 août 2003
Statut
Membre
Dernière intervention
13 mars 2010

Merci bien, je vais tester :)

PS: j'ai du toucher javascript deux fois dans ma vie moi je code php /sql et j'ai décidé d'ajouter un petit plus a mon script alors je ne t'aurais pas montrer grand chose a par mon code html :)

Antho
Messages postés
2
Date d'inscription
mardi 8 novembre 2005
Statut
Membre
Dernière intervention
11 juillet 2007

Super merci pour cette fonction, mais j'aimerai avoir un petit renseignement qui ne doit pour vous pas être très compliqué..

Voila, je voudrais savoir comment je pourrai utiliser cette fonction "addition" pour soustraire au lieu d'additionner plusieurs valeurs de champs texte???

En esperant être clair dans ma requêtte.

Tchoa
Messages postés
177
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
16 janvier 2009
1
Bonjour [auteurdetail.aspx?ID=617556 nyko07]
,
Dis donc si t'es arrivé jusqu'ici, tu as du comprendre le code un minimum...
Pousse un peu plus ta reflection....;-)
Allez, un coup de pouce, quand tu verras un "+=" essaye "-=".
Et change addition par soustraction.
Cordialement,
Pierrick
Messages postés
2
Date d'inscription
mardi 8 novembre 2005
Statut
Membre
Dernière intervention
11 juillet 2007

Bonjour, Pierrick....

Merci pour l'info et comme tu dis j'ai pousser un peu plus loin dans le code après mon post... mais avant de donner la réponse je tiens a te dire que j'avais deja essayé ta solution avant de venir ici! Tout aurait été bien plus simple s'il avait fallut changer que ça...
Alors voila la solution final, qui marche a merveille chez moi :

function soustraction(){
  var inputs = document.getElementById('container').getElementsByTagName('input');
  var somme = inputs[0].value;  for(var i 1, length inputs.length; i < length - 1; i++){
   var value = inputs[i].value;
   if(isNaN(value)){
    inputs[i].value = value.substring(0, value.length - 2);
    return false;
   }else{
    somme -= parseInt(value);
   }
  }
  inputs[inputs.length - 1].value = somme;
  return true;
 }
Messages postés
177
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
16 janvier 2009
1
Bonjour,
je tiens à préciser que pour qu'un code soit clair, le nom des variable doit l'etre aussi.
Si tu fais une soustraction, ce n'est plus une somme mais une différence.
Je post ce commentaire pour préciser que cette fonction plante si l'utilisateur ne rentre pas un nombre dans le premier input.
A cause de l'initialisation de la variable somme qui ne le vérifie pas.
La correction serait:

function soustraction(){
  var inputs = document.getElementById('container').getElementsByTagName('input');
  var diff = 0;
   if(isNaN( inputs[0].value)){

      inputs[0].value = value.substring(0, inputs[0].value.length - 2);

      return false;

   }else{
       diff  = parseInt(inputs[0].value);
  }
         for(var i 1, length inputs.length; i < length - 1; i++){
   var value = inputs[i].value;
   if(isNaN(value)){
    inputs[i].value = value.substring(0, value.length - 2);
    return false;
   }else{
    diff  -= parseInt(value);
   }
  }
  inputs[inputs.length - 1].value = diff  ;
  return true;
 }

Voilà c'est pas testé, mais étant donné le niveau de complexité, on s'en passera.
Sujet clos.
Cordialement,
Pierrick