j'ai fait une fonction pour calculer automatiquement un total,
seulement j'ai un petit soucis,
le document.getElementById fonctionne bien sur ie mais ça fonctionne pas sur firefox
function calculMontant()
{
var NameInputTotalMontantTotal="TotalMontantTotal";
var TotalMontantTotal=0;
for (i=1; i<6; i++)
{
// nom des inputs de la ligne en cours
var NameInputTarifUnitaire="TarifUnitaire"+i;
var NameInputQuantite="Quantite"+i;
var NameInputMontantTotal="MontantTotal"+i;
if(document.getElementById(NameInputTarifUnitaire) != null)
{
if(parseFloat(document.getElementById(NameInputTarifUnitaire).value)>0)
{
if(parseInt(document.getElementById(NameInputQuantite).value)>0)
{
TarifUnitaire=parseFloat(document.getElementById(NameInputTarifUnitaire).value);
Quantite=parseInt(document.getElementById(NameInputQuantite).value);
MontantTotal=TarifUnitaire*Quantite;
TotalMontantTotal=TotalMontantTotal+MontantTotal;
document.getElementById(NameInputMontantTotal).value= round(MontantTotal,2);
}
}
}
}
if(TotalMontantTotal!=0)
document.getElementById(NameInputTotalMontantTotal).value=round(TotalMontantTotal,2);
}
du coup j'ai utilisé
le document.forms['saisie'] et ça fonctionne très bien sur ie et sur firefox, seulement le code est très long (plus bas j'ai mis le code que pour une ligne , la ligne 1, seulement j'ai 5 lignes de calcul en tout , voir plus par la suite)
function calculMontant()
{
var TotalMontantTotal=0;
var TarifUnitaire=0;
var Quantite=0;
if (document.forms['saisie'].TarifUnitaire1.value !='' && document.forms['saisie'].TarifUnitaire1.value!= null )
{
if (document.forms['saisie'].Quantite1.value !='' && document.forms['saisie'].Quantite1.value != null )
{
TarifUnitaire=parseFloat(document.forms['saisie'].TarifUnitaire1.value);
Quantite=parseInt(document.forms['saisie'].Quantite1.value);
MontantTotal=TarifUnitaire*Quantite;
TotalMontantTotal=TotalMontantTotal+MontantTotal;
document.forms['saisie'].MontantTotal1.value=MontantTotal;
TarifUnitaire=0;
Quantite=0;
}
}
if(TotalMontantTotal!=0)
document.forms['saisie'].TotalMontantTotal.value=round(TotalMontantTotal,2);
}
comment faire pour pouvoir un code qui soit plus général ??
merci d'avance pour votre aide
le document.getElementById fonctionne bien sur ie mais ça fonctionne pas sur firefox
euh... ça marche très bien sur firefox le document.getElementById... je vois pas pourquoi il marcherais pas dans ton code...
regarde si tu n'as pas mis 2 fois le même id... et si ce n'est pas le cas, donne les codes entiers... qu'on puisse tester dans les mêmes conditions que toi(ou si tu veux mettre la page en ligne histoire qu'on ai pas besoin de se fatigue à faire copier-coller c'est encore mieu )
arf je pense savoir pourquoi du coup , j'ai pas mis d'"id" sur mes inputs , j'ai simplement des "name"
je pensais que ça suffisait
ça doit venir de ça surement ??
désolé je peux pas le mettre en ligne, j'ai pas la base chez moi
oui sans id c'est sûr que c'est dur... et ie doit prendre les names si il ne trouve pas d'id... (sachant que le name et "l'ancêtre du id")
donc comme d'habitude :
-ie a tort
-firefox a raison
document.getElementById fonctionne pas sur firefox
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.