Page 1 sur 1
Trois champs de formulaires liés
Posté : 01 nov. 2007, 12:17
par schninkel
J'ai le même type de problème (
PS de Zeus : que dans le sujet suivant). Je veux additionner les champs de formulaire amount1, amount2, amount3 et verser le résultat dans total_amount.
Sur base des conseils donnés, j'ai préparé le code suivant qui ne fonctionne pas...
Qu'est-ce qui cloche ?
Code : Tout sélectionner
<head>
...
<script type="text/javascript">
function somme()
{
var input1 = document.form1.getElementByName('amount1');
var input2 = document.form1.getElementByName('amount2');
var input3 = document.form1.getElementByName('amount3');
total_amount.value = parseInt(input1.value) + parseInt(input2.value)+ parseInt(input3.value);
return total_amount;
}
</script>
</head>
<body>
<input type="text" name="amount1" id="amount3" onblur="javascript:somme()"/>
<input type="text" name="amount2" id="amount3" onblur="javascript:somme()"/>
<input type="text" name="amount3" id="amount3" onblur="javascript:somme()"/>
<input type="text" name="total_amount" id="total" />
</body>
Merci pour vos conseils...
Posté : 01 nov. 2007, 13:36
par zeus
Modération :
schninkel, pour toute nouvelle question ouvre un nouveau sujet,
cela te permettra d'avoir plus de réponses.
Je me suis permis d'extraire ton message du post original.
En plus, tu pourras mettre [Résolu] dès que ton problème évoqué ici sera réglé.
Merci de prendre le temps de lire les règlements.
Posté : 01 nov. 2007, 16:26
par h0_noMan
Tu n'as pas besoin du .value aprés ton total_amount.
Puis met un var devant.
Code : Tout sélectionner
var total_amount = parseInt(input1.value) + parseInt(input2.value)+ parseInt(input3.value);
Posté : 02 nov. 2007, 14:06
par schninkel
J'ai effectué la correction mais n'ai toujours pas le total qui s'affiche dans le champ total_amount
Que faire d'autre ?
Posté : 02 nov. 2007, 14:13
par Truc
Le truc c'est que tu disposes du total dans une variable et tu n'en fais rien
var total_amount = ....
document.getElementById('total').value = total_amount;
Posté : 05 nov. 2007, 09:33
par schninkel
Je fais ce que tu me conseilles mais ça ne marche pas mieux. Le but est d'avoir le champ d'input total qui est adapté par la valeur de la somme des trois champs 'amount'.
Ca a l'air simple mais est sans doute plu compliqué que c'en a l'air...
Quelqu'un peut-il me donner le dernier coup de pouce ?
Voici ce que j'ai :
Code : Tout sélectionner
<script type="text/javascript">
function somme()
{
var input1 = document.form1.getElementByName('amount1');
var input2 = document.form1.getElementByName('amount2');
var input3 = document.form1.getElementByName('amount3');
var total_amount = parseInt(input1.value) + parseInt(input2.value)+ parseInt(input3.value);
document.getElementById('total').value = total_amount;
}
</script>
</head>
<body>
<input type="text" name="amount1" id="amount3" onblur="javascript:somme()"/>
<input type="text" name="amount2" id="amount3" onblur="javascript:somme()"/>
<input type="text" name="amount3" id="amount3" onblur="javascript:somme()"/>
<input type="text" name="total_amount" id="total" />
</body>
</html>
Posté : 05 nov. 2007, 09:37
par d0m
y a t il des erreurs javascript? si oui lesquelles?
Posté : 05 nov. 2007, 11:55
par Truc
Mention "javascript" innutile... onblur est déjà un événement JS :
onblur="javascript:somme()"
Posté : 05 nov. 2007, 17:20
par AB
Puisque c'est possible je n'emploierais que la méthode getElementById en faisant ça :
Code : Tout sélectionner
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<script type="text/javascript">
function somme()
{
var input1 = isNaN(document.getElementById('amount1').value) ? 0 : document.getElementById('amount1').value;
var input2 = isNaN(document.getElementById('amount2').value) ? 0 : document.getElementById('amount2').value;
var input3 = isNaN(document.getElementById('amount3').value) ? 0 : document.getElementById('amount3').value;
var total_amount = Number(input1) + Number(input2) + Number(input3);
//uniquement si suppression de la partie décimale
total_amount = parseInt(total_amount);
document.getElementById('total').value = total_amount;
}
</script>
</head>
<body>
<input type="text" name="amount1" id="amount1" onBlur ="somme()" />
<input type="text" name="amount2" id="amount2" onBlur ="somme()" />
<input type="text" name="amount3" id="amount3" onBlur ="somme()" />
<input type="text" name="total_amount" id="total" />
</body>
</html>
Posté : 06 nov. 2007, 15:14
par Invité
Super, ça marche !! le problème est [Résolu].
Merci à nos cracks...