Probleme sur formulaire
RésoluOrkaell -
J'ai un petit problème sur mon formulaire au niveau des calculs, comment faire pour que si le total de mon formulaire et inferieur a 60 on rajoute 5 au total
mais si le resultat est supérieur a 60 on garde le total de départ.
Je mets ce bout de code car le code intégral est très long.
function total_com()
{
tot = 0;
if (document.acheter2.totsaut.value != "") {
tot = tot + parseInt(document.acheter2.totsaut.value);
}
else
{ tot = tot;}
tot= tot + acompte();
document.acheter2.acompte.value = 30*document.acheter2.nbsaut.value + acompte();
document.acheter2.solde.value = tot-30*document.acheter2.nbsaut.value-acompte();
return tot;
}
Si quelqu'un pouvait m'aider ça serait vraiment cool :)
Je vous remercie par avance :)
Configuration: Windows XP Firefox 2.0.0.7
- Que veut dire alias du formulaire
- Formulaire de réclamation facebook compte désactivé - Guide
- Un formulaire rempli - Guide
- Formulaire de reclamation instagram - Guide
- Alias du formulaire - Forum Yahoo mail
- Confirmer le nouvel envoi du formulaire err_cache_miss ✓ - Forum Access
66 réponses
- 1
- 2
- 3
- 4
Le problème porte sur l'application d'une majoration de 5 au total d'un formulaire lorsque le total calculé est inférieur à 60, sinon le total initial doit être conservé. Plusieurs propositions évoquent l'utilisation correcte de parseInt ou parseFloat et l'appel de la fonction au bon endroit, avec une logique qui applique +5 lorsque le total est inférieur à 60. D'autres conseils recommandent de clarifier les scénarios (acompte, pas acompte, soldes, quantités) et de dériver les actions principales et redondantes avant de coder les fonctions. Pour la pratique, une version propose d'utiliser parseFloat ou des valeurs numériques via des identifiants DOM et de renvoyer le résultat sous forme numérique pour éviter les erreurs de centimes.
je te propose :
function total(val)
{
if (Math.parseInt(val) > 60)
{
return parseInt(val) + 5;
}
else
{
return parseInt(val);
}
}
Faut-il l'ajouter tout simplement ou bien remplacer certaine fonction ? :-s
il faut que tu l'appelles depuis l'endroit du code où tu as besoin de majorer ta valeur.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionIl doit y avoir certaine chose qui parasite, ou des termes differents pour le total et val.... ou peut etre que je l'ai mal inseré
Tu as une idée ? ou peux-tu m'en dire plus ?
Mais si la commande et inferieure a 60€ le client paie des frais de port, donc dans ce cas là il faut rajouter 5€ a la totalité.
mon total et recuperé dans le bout de code que j'ai mis en debut de post je le remets ici
function total_com()
{
tot = 0;
if (document.acheter2.totsaut.value != "") {
tot = tot + parseInt(document.acheter2.totsaut.value);
}
else
{ tot = tot;}
tot= tot + acompte();
document.acheter2.acompte.value = 30*document.acheter2.nbsaut.value + acompte();
document.acheter2.solde.value = tot-30*document.acheter2.nbsaut.value-acompte();
return tot;
}
donc je pense que les 5e doivent être rajouté là dedans... Mais je ne sais aps comment faire :-s
Je la reprends en corrigeant:
function total(val)
{
if (Math.parseInt(val) < 60)
{
return parseInt(val) + 5;
}
else
{
return parseInt(val);
}
}
Et tu dois appeler cette fonction:
tot=total(tot);
Mais le problème c'est que je ne sais pas ou et comment l'appeler cette fonction :-s
J'ai mis en place la fonction total(val)
mais comment l'appeler dans mon code ? :-s
je suis désolée mes connaissance en script sont tres limité... j'ai su modifier ce qu'il fallait mais rajouter une fonction, là je suis perdue :-/
function total(val)
{
if (val > 60)
{
return (val + 5);
}
else
{
return val;
}
}
Tu dois insérer cette fonction en haut des autres (du moment qu'elle est avant l'instruction qui l'utilisera), et tu dois insérer "tot=total(tot);" je pense avant return tot; .
Et tu dois appeler cette fonction:
tot=total(tot);
donc si tu veux ajouter les frais de port à la fin tu codes :
tot=total(tot); return tot;
ou en une seule ligne :
return total(tot);
function total(val){
return Math.parseInt(val)>60? Math.parseInt(val): (Math.parseInt(val)+5);
}
Un grand merci à tout les 2 :)
J'aurais une autre question
dans mon total les centimes ne s'affichent pas... y a une soluce pour palier au problème ?
function total(val)
{
if (Math.parseDouble(val) < 60)
{
return Math.parseDouble(val) + 5;
}
else
{
return Math.parseDouble(val);
}
}
Ca marche?
function total(val)
{
if (val < 60)
{
return (val + 5);
}
else
{
return val;
}
}
function total_com()
{
tot = 0;
if (document.acheter2.totsaut.value != "") {
tot = tot + parseInt(document.acheter2.totsaut.value);
}
else
{ tot = tot;}
tot= total(tot) + acompte();
document.acheter2.acompte.value = 30*document.acheter2.nbsaut.value + acompte();
document.acheter2.solde.value = tot-30*document.acheter2.nbsaut.value-acompte();
return tot;
}
Et là la fonction des frais de port fonctionne nikel, en revanche je n'ai pas les centimes qui s'affichent, et si j'essaie ce que m'a donné Ilan ça ne fonctionne plus :-s
function total(val)
{
if (typeof(val) == 'number')
{
if (val < 60)
{
return val + 5;
}
return val;
}
return 0;
}
}
on se contente de tester le type, retourne '0' en cas de saisie incorrecte.
j'ai virer les 'else' (inutiles puisque 'return' est une sortie de fonction).
function total(val)
{
if (val < 60)
{
return (val + 5.0);
}
else
{
return val;
}
}
function total_com()
{
tot = 0.0;
if (document.acheter2.totsaut.value != "") {
tot = tot + parseInt(document.acheter2.totsaut.value);
}
else
{ tot = tot;}
tot= total(tot) + acompte();
document.acheter2.acompte.value = 30*document.acheter2.nbsaut.value + acompte();
document.acheter2.solde.value = tot-30*document.acheter2.nbsaut.value-acompte();
return tot;
}
- 1
- 2
- 3
- 4