Non c'est pas mon cas
même quand tu choisis une durée de plusieurs mois par exemple ?
Ok bon ben c'est peut-être un problème de version...
Sinon c'est normal que ton code ne fonctionne pas, il y a beaucoup de chose à revoir...
- Par exemple tu mets plusieurs onchange dans certains input or il semblerait que seul un des deux soit lancé...
- Le onchange n'est pas déclenché chez moi lorsque tu modifies le input par du code JS (et c'est ce que tu attends/espères apparemment) d'ailleurs à ce propos j'ai trouvé cette explication ici #5 de Watilin...
Waw par contre je connaissait pas ces événements en javascript mais t'inquiete j'ai réglé mon probleme mais a tu vu ce que j'avais comme message sous mon code html, a propos de faire un if dans ton code javascript
Mais il faudrait régler ces problèmes que je t'ai indiqués car ton interface n'est pas commode, elle n'est pas réactive, si on change une donnée le calcul n'est pas toujours mis à jour ce qui est pénible et trompeur (source d’erreur)...
Bon à toi de voir...
De plus il y a plusieurs optimisations possibles pour le code JS mais bon là aussi à toi de voir...
Sinon pour ce que tu demandais voilà une fonction qui semble faire l'affaire compte tenu de ton html et du reste du code JS :
Code javascript : 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 function calculTotal() { var heureMatin = document.getElementById("ttc").value.split(":"); var heureApresMidi = document.getElementById("ttc2").value.split(":"); var heureMatinEnMinutes = heureMatin[0] * 60 + +heureMatin[1]; var heureApresMidiEnMinutes = heureApresMidi[0] * 60 + +heureApresMidi[1]; if (isNaN(heureMatinEnMinutes)) heureMatinEnMinutes = 0; if (isNaN(heureApresMidiEnMinutes)) heureApresMidiEnMinutes = 0; var somme = heureMatinEnMinutes + heureApresMidiEnMinutes; var nbrJours = +document.getElementById("nbjourtotals").value; var nbrPersonnes = +document.getElementById("nbpers").value; var durreTotale = somme * nbrJours * nbrPersonnes; var durreTotaleHeures = Math.floor(durreTotale / 60); var durreTotaleMinutes = durreTotale % 60; if (durreTotaleHeures < 10) durreTotaleHeures = "0" + durreTotaleHeures; if (durreTotaleMinutes < 10) durreTotaleMinutes = "0" + durreTotaleMinutes; document.getElementById("jourtotal").value = durreTotaleHeures + ":" + durreTotaleMinutes; }
Franchement merci beaucoup et maintenant je vais m'attaquer au problème que tu ma dit donc en gros je dois faire en sorte que les champs se mettent a jour lorsqu’on change de donnée. J'ai regarder quelque événement en javascript mais rien ne correspond vraiment a ce que tu me dit, quel événement javascript qui serai préférable ?
As-tu testé ? Ça marche ou pas ?
Tu peux garder onchange mais il faut le mettre sur input type number où tu entres les nombres et non sur les input qui affichent les résultats (car ceux-là ils ne se déclenchent pas car les résultats sont affichés par du code JS).
Effectivement tu n'a pas tort, finalement j'ai opter pour onkeyup et sa fonctionne proprement.
Mais dit moi, comment faire en sorte qu'il y est que 2 chiffre après une virgule en javascript
La nouvelle fonction fonctionne comme tu veux alors ?
Pour ta question regarde ça : https://developer.mozilla.org/fr/doc...Number/toFixed
Oui la nouvelle fonction fonctionne comme je veux franchement merci beaucoup
Partager