11521 sujets

JavaScript, DOM et API Web HTML5

Pages :
Bonjour, je débute en javascript et comme vous allez le voir ci-dessous, c'est sensé être un script simple !! mais le calcul ne s'effectue pas ! Aurais-je oublié une fonction ? merci de votre aide

le fichier js

function roundit(which){
return Math.round(which*100)/100
}

function agefc(){
with (document.karvonen){
age.value = roundit(age.value);
}
}

function sexe(){
with (document.karvonen){
sexe.value = roundit(sexe.value);
}
}

function fcrepos(){
with (document.karvonen){
fcrep.value = roundit(fcrep.value);
}
}

function result(){
with (document.karvonen){
fcmax.value = roundit(sexe.value - age.value);
fcres.value = roundit((sexe.value - age.value) - fcrep.value);


le code html


<table>
<form name="karvonen">
			<tr> 
				<td width="100%" height="22"><input onChange=agefc() name=age maxlength="3" size="6"><b> Votre âge</i></b></td>
			<tr> 
				<td width="100%" height="22"><select name=sexe id="sexe" class="postform" onchange=valsexe()>
<option value="-1">Sélectionner votre sexe</option>
<option class="level-0" value="220">Homme</option>
<option class="level-0" value="226">Femme</option>
</select></td>
			</tr>
			<tr> 
				<td width="100%" height="22"><input onChange=fcrepos() name=fcrep maxlength="3" size="6"><b> pulsations : Fréquence cardiaque au repos <i>(<acronym title="Fréquence cardiaque au repos">FC repos</acronym>)</i></b></td>
			</tr>
				<td height="50" width="100%" align="center">
				<input type="button" value="Calculer" onClick="result()" name="button" style="font-size:12">
				<input type="reset" name="Reset" value="Effacer" style="font-size:12"></td>
			</tr>
			<tr> 
				<td width="100%" height="22"><input onChange=result() name=fcmax size="6"><b> pulsations : Fréquence cardiaque max <i>(<acronym title="Fréquence cardiaque max">FC max</acronym>)</i></b></td>
			</tr>
			<tr> 
				<td width="100%" height="22"><input onChange=result() name=fcres size="6"><b> pulsations : Fréquence cardiaque de réserve <i>(<acronym title="Fréquence cardiaque de réserve">FC réserve</acronym>)</i></b></td>
			</tr>
			</form>
</table>
Modérateur
Bonjour bonjour,

Alors avant d'aller plus loin tu vas devoir régler plein de détails de base sur ton HTML.
Par exemple ici (première ligne du tableau) :
<td width="100%" height="22"><input onChange=agefc() name=age maxlength="3" size="6"><b> Votre âge</i></b></td>
Tu fermes une balise </i> alors que tu n'en as pas ouvert. Si c'est le <input> que tu cherches à fermer, premièrement et théoriquement ça aurait du être </input> selon toute logique et deuxièmement le input ne s'ouvre / se ferme pas : http://www.w3schools.com/tags/tag_input.asp

Il y a plein d’erreurs comme celle-ci ou tu fermes des <tr> sans les avoir ouvert, tu ouvres le <table> puis tu ouvres le <form> et à la fin tu fermes d'abord le <table> avant de fermer le <form> etc. Il faut que tu repasses la dessus. Un conseil utilise un éditeur de code avec une coloration syntaxique pour y voir plus clair et indente bien ton code à chaque balise.



Maintenant du coté du JS il te faut un peu d'indentation aussi !! Comme ça tu pourras voir que des fonctions comme result() ne sont pas fermées (ou alors il en manque un bout).

Ensuite plutôt que de poser des :
onChange=fcrepos()

dans el code HTML il vaut mieux utiliser la méthode addEventListener() depuis ton Js.

Voila après cela on y verra déjà un peu plus clair.

N'hésite pas à demander des précisions si j'ai mal introduit un truc Smiley smile

Bon code Smiley cligne
Modifié par _laurent (10 Nov 2016 - 11:13)
_laurent a écrit :
Bon code Smiley cligne


Merci pour toutes tes remarques. Je vais corriger mes erreurs HTML et regarder de plus prêt cette méthode addEventListener.

Je laisse le sujet ouvert, au cas où Smiley cligne
Modérateur
dafid5 a écrit :
Je laisse le sujet ouvert, au cas où Smiley cligne

C'est fait pour Smiley smile et n'hésites pas à revenir si tu coinces, ne reste pas bloqué trop longtemps.
_laurent a écrit :
n'hésites pas à revenir si tu coinces, ne reste pas bloqué trop longtemps.


Ce n'est pas si évident que ça malgré les explications (en anglais Smiley decu ). Suis-je sur la bonne voix ? Je ne suis pas sûre que mes var p1, P2 et p3 soit bien passé !


<!DOCTYPE html>
<html>
<body>

<form name="karvonen">
 <fieldset>
  <legend>
   Calculatrice
  </legend>
  <input name="age" maxlength="3" size="6">
  <label for="agefc">Votre âge</label>
  <br>
  <select name="sexe" id="sexe" class="postform">
   <option value="-1">Sélectionner votre sexe</option>
   <option class="level-0" value="220">Homme</option>
   <option class="level-0" value="226">Femme</option>
  </select>
  <br>
  <input name="fcrep" maxlength="3" size="6">
  <label for="fcrepos">
   pulsations : Fréquence cardiaque au repos 
   <i>(<acronym title="Fréquence cardiaque au repos">FC repos</acronym>)</i>
  </label>
  <br>
 </fieldset>
 <button id="calculer">Calculer</button>
 <button type="reset" name="Reset" value="Effacer">Effacer</button>
 <fieldset>
  <legend>
   Résultats
  </legend>
  <p id="result"></p>
  <label for="fcmax">
   pulsations : Fréquence cardiaque max 
   <i>(<acronym title="Fréquence cardiaque max">FC max</acronym>)</i>
  </label>
  <br>
  <p id="result1"></p>
  <label for="fcres">
    pulsations : Fréquence cardiaque de réserve 
   <i>(<acronym title="Fréquence cardiaque de réserve">FC réserve</acronym>)</i>
  </label>
 </fieldset>
</form>

<script>

var p1 = this.form.elements['sexe'].options[this.form.elements['sexe'].selectedIndex].value;
var p2 = document.forms["karvonen"].elements["age"].value;
var p3 = document.forms["karvonen"].elements["fcrepos"].value

document.getElementById("calculer").addEventListener("click", function() {
    myFunction(p1, p2, p3);
});

function myFunction(a, b) {
    var result = a - b;
    document.getElementById("result").value = result;
}

function myFunction(a, b, c) {
    var result1 = (a - b) - c;
    document.getElementById("result1").value = result;
}

</script>

</body>
</html>



Modifié par dafid5 (11 Nov 2016 - 08:21)
Modérateur
Salut dafid5 !

Oui ça se rapproche ! T'as très bien compris comment utiliser tout ça.
Tiens j'ai un peu corrigé ton code : https://jsfiddle.net/f3xchurs/ il faut juste que tu adaptes un peu pour toi.

T'étais sur la bonne voie. Deux trois remarque sur ton code du coup :

- Tu utilises bien les
document.getElementById("").value
dans la fin de ton code, hésite pas à les utiliser aussi au début pour récupérer les value Smiley smile

- Utilises des noms de variables et de fonctions plus parlants, tu y verras beaucoup plus clair instantanément.

- pour afficher le résultat dans une balise ce n'es pas .value mais .innerHTML

- comme tu es dans un formulaire, mais qu'en fait tu ne veux pas vraiment l'envoyer il faut arrêter le comportement par défaut avec .preventDefault();

- Utilise les console.log(''); pour écrire du texte ou afficher les variable dans la console de débug, tu verras direct si tu passes ou non dans les boucles et si tu envoie bien les valeurs (oublies pas de les supprimer une fois fini)



Voila en gros a chaud. Beau boulot Smiley smile

Tiens moi au jus pour la suite !
_laurent a écrit :


Tiens moi au jus pour la suite !


HTML
<form name="karvonen">
 <fieldset>
  <legend>
   Calculatrice
  </legend>
  <input type="number" id="age" name="age" maxlength="3" size="6">
  <label for="agefc">Votre âge</label>
  <br>
  <select name="sexe" id="sexe" class="postform">
   <option value="-1">Sélectionner votre sexe</option>
   <option class="level-0" value="220">Homme</option>
   <option class="level-0" value="226">Femme</option>
  </select>
  <br>
  <input type="number" id="fcrepos" name="fcrep" maxlength="3" size="6">
  <label for="fcrepos">
   pulsations (BPM) : Fréquence cardiaque au repos 
   <i>(<acronym title="Fréquence cardiaque au repos">FC repos</acronym>)</i>
  </label>
  <br>
 </fieldset>
 
 <button id="calculer">Calculer</button>
 <button type="reset" name="Reset" value="Effacer">Effacer</button>
 
 <fieldset>
  <legend>
   Résultats
  </legend>
  <p id="fcmax"></p>
  <label for="fcmax">
   pulsations (BPM) : Fréquence cardiaque max 
   <i>(<acronym title="Fréquence cardiaque max">FC max</acronym>)</i>
  </label>
  <br>
  <p id="fcres"></p>
  <label for="fcres">
    pulsations (BPM) : Fréquence cardiaque de réserve 
   <i>(<acronym title="Fréquence cardiaque de réserve">FC réserve</acronym>)</i>
  </label>
   <p id="Endurance1"></p> pulsations (BPM) 50% de la FC réserve
   <p id="Endurance2"></p> pulsations (BPM) 70% de la FC réserve
   <p id="Resdouce"></p> pulsations (BPM) 85% de la FC réserve
   <p id="Resdure"></p> pulsations (BPM) 95% de la FC réserve
 </fieldset>
</form>


JS :
var age = document.getElementById("age");
var sexe = document.getElementById("sexe");
var fcrepos = document.getElementById("fcrepos");
var fcmax = document.getElementById("fcmax");
var fcres = document.getElementById("fcres");
var endurance1 = 0.5;
var endurance2 = 0.7;
var resdouce = 0.85;
var resdure = 0.95;

document.getElementById("calculer").addEventListener("click", function(event) {
		event.preventDefault();
    if(age.value && sexe.value && fcrepos.value) {
    	console.log("Calculating...");
    	fcmax.innerHTML = getFcmax(age.value, sexe.value);
    	fcres.innerHTML = getFcres(age.value, sexe.value, fcrepos.value);
    	endurance1.innerHTML = getEndurance1(age.value, sexe.value, fcrepos.value, endurance1);
    	endurance2.innerHTML = getEndurance2(age.value, sexe.value, fcrepos.value, endurance2);
    	resdouce.innerHTML = getResdouce(age.value, sexe.value, fcrepos.value, resdouce);
    	resdure.innerHTML = getResdure(age.value, sexe.value, fcrepos.value, resdure);
    } else {
    	console.log("There is empty fields");
    }
});


function getFcmax(age, sexe) {
    var result = (sexe - age);
    return result;
}

function getFcres(age, sexe, fcrepos) {
    var result = (sexe - age) - fcrepos;
    return result;
}

function getEndurance1(age, sexe, fcrepos, endurance1) {
    var result = (((sexe - age) - fcrepos) * endurance1) + fcrepos;
    return result;
}

function getEndurance2(age, sexe, fcrepos, endurance2) {
    var result = (((sexe - age) - fcrepos) * endurance2) + fcrepos;
    return result;
}

function getResdouce(age, sexe, fcrepos, resdouce) {
    var result = (((sexe - age) - fcrepos) * resdouce) + fcrepos;
    return result;
}

function getResdure(age, sexe, fcrepos, resdure) {
    var result = (((sexe - age) - fcrepos) * resdure) + fcrepos;
    return result;
}


Un grand merci !! cela fonctionne parfaitement bien sur le site jsfddile avec les modifs que j'y ai apporté MAIS, je rencontre un problème sur mon site. Un problème qui est récurent avec mes autres formulaires !!!! je dois avoir un script qui fou le bordel !!

Aurais-tu encore la possibilité de m'aider ?

Ce que j'ai repéré après avoir appuyé sur le bouton calculer : dans la barre d'url, voila ce qui s'affiche :

http://www.dieteticien-nutritionniste-sante.com/conseils-alimentaires/methode-karvonen-planification-entrainements.php?age=32&sexe=220&fcrep=76

Ce sont les données que j'ai renseigné dans les champs vides du formulaire.
Modifié par dafid5 (16 Nov 2016 - 12:25)
Modérateur
Salut,

Je crois que ton code js n'est pas exécuté... il va le chercher dans http://www.dieteticien-nutritionniste-sante.com/conseils-alimentaires/js/kar-fc.js alors qu'il est dans http://www.dieteticien-nutritionniste-sante.com/js/kar-fc.js

C'est juste le chemin relatif qui n'est pas bon du coup vu que tu dois deja être dans un sous dossier :
<script language="JavaScript" type="text/javascript" src="js/kar-fc.js"></script>

Il faut mettre un chemin absolu du genre (avec WP) :
<script language="JavaScript" type="text/javascript" src="<?php site_url(); ?>/js/kar-fc.js"></script>


Je ne sais pas si çà viens de là, mais c'est le comportement par défaut (php style) du formulaire, il fait passer par l'url les paramètres (et en plus on a un reload de la page ce qui n'est pas bon)... le .preventDefault() est justement là pour éviter ça et rester dans la page en cours.
_laurent a écrit :

Je crois que ton code js n'est pas exécuté... il va le chercher dans http://www.dieteticien-nutritionniste-sante.com/conseils-alimentaires/js/kar-fc.js alors qu'il est dans http://www.dieteticien-nutritionniste-sante.com/js/kar-fc.js


ça c'est corrigé !! mais j'ai toujours ce rechargement de page quand j'appuie sur calculer ! je n'utilise pas WP !! mais j'ai utiliser un menu venant d'un site WP ....

_laurent a écrit :

Je ne sais pas si çà viens de là, mais c'est le comportement par défaut (php style) du formulaire, il fait passer par l'url les paramètres (et en plus on a un reload de la page ce qui n'est pas bon)... le .preventDefault() est justement là pour éviter ça et rester dans la page en cours.


comment puis-je faire selon toi ?
Modérateur
Salut dafid5,


Effectivement tu as réglé ce problème mais nous en avons un autre Smiley cligne

En gros ton script est chargé au début et il tente de chercher des éléments (le bouton calculer et tout les champs du formulaires) alors qu'ils ne sont pas encore crées. C'ets pourquoi tu peux voir l'erreur :
kar-fc.js:8 Uncaught TypeError: Cannot read property 'addEventListener' of null(…)

dans ta console de debug. En gros il te dis qu'il peut pas accrocher de EventListener à un "null" (= rien du tout, ce qui parait logique)

Bref ta fonction n'est toujours pas lue et le .preventDefault() qui évite le rechargement de la page n'est toujours pas pris en compte.

Pour ça généralement il y a deux solutions:

- La première c'est de mettre ton script js en bas de ta page, avant de fermer </body> comme ca il va écrire tout le dom avant de charger la fonction.

- La seconde solution est de passer pas des fonctions qui détectent si le DOM est chargé entièrement avant de lancer ta fonction. On peut donc utiliser DOMContentLoaded mais j'ai pas réussi à le faire fonctionner dans JsFiddle, il le bloque peut etre vu que c'est dans une iframe...
_laurent a écrit :

Pour ça généralement il y a deux solutions:

- La première c'est de mettre ton script js en bas de ta page, avant de fermer &lt;/body&gt; comme ca il va écrire tout le dom avant de charger la fonction.

- La seconde solution est de passer pas des fonctions qui détectent si le DOM est chargé entièrement avant de lancer ta fonction. On peut donc utiliser DOMContentLoaded mais j'ai pas réussi à le faire fonctionner dans JsFiddle, il le bloque peut etre vu que c'est dans une iframe...


Bonjour Laurent,
Je test ce soir. Merci de ton aide
_laurent a écrit :

- La première c'est de mettre ton script js en bas de ta page, avant de fermer &lt;/body&gt; comme ca il va écrire tout le dom avant de charger la fonction.


L'expérience à parlé !!!

Je viens de mettre mon url de js en bas de page et ça fonctionne bien Smiley smile MERCI

J'ai une dernière question, j'ai rajouté des variables mais, de la manière dont nous avons écrit la première récupération de variable, là ça ne marche pas. y-a t-il d'autre façon de faire ?


var age = document.getElementById("age");
var sexe = document.getElementById("sexe");
var fcrepos = document.getElementById("fcrepos");
var fcmax = document.getElementById("fcmax");
var fcres = document.getElementById("fcres");
var endurance1 = 0.5;
var endurance2 = 0.7;
var resdouce = 0.85;
var resdure = 0.95;

document.getElementById("calculer").addEventListener("click", function(event) {
		event.preventDefault();
    if(age.value && sexe.value && fcrepos.value) {
    	console.log("Calculating...");
    	fcmax.innerHTML = getFcmax(age.value, sexe.value);
    	fcres.innerHTML = getFcres(age.value, sexe.value, fcrepos.value);
    	endurance1.innerHTML = getEndurance1(age.value, sexe.value, fcrepos.value, endurance1);
    	endurance2.innerHTML = getEndurance2(age.value, sexe.value, fcrepos.value, endurance2);
    	resdouce.innerHTML = getResdouce(age.value, sexe.value, fcrepos.value, resdouce);
    	resdure.innerHTML = getResdure(age.value, sexe.value, fcrepos.value, resdure);
    } else {
    	console.log("There is empty fields");
    }
});


function getFcmax(age, sexe) {
    var result = (sexe - age);
    return result;
}

function getFcres(age, sexe, fcrepos) {
    var result = (sexe - age) - fcrepos;
    return result;
}

function getEndurance1(age, sexe, fcrepos, endurance1) {
    var result = (((sexe - age) - fcrepos) * endurance1) + fcrepos;
    return result;
}

function getEndurance2(age, sexe, fcrepos, endurance2) {
    var result = (((sexe - age) - fcrepos) * endurance2) + fcrepos;
    return result;
}

function getResdouce(age, sexe, fcrepos, resdouce) {
    var result = (((sexe - age) - fcrepos) * resdouce) + fcrepos;
    return result;
}

function getResdure(age, sexe, fcrepos, resdure) {
    var result = (((sexe - age) - fcrepos) * resdure) + fcrepos;
    return result;
}



<form name="karvonen">
 <fieldset>
  <legend>
   Calculatrice
  </legend>
  <input type="number" id="age" name="age" maxlength="3" size="6">
  <label for="agefc">Votre âge</label>
  <br>
  <select name="sexe" id="sexe" class="postform">
   <option value="-1">Sélectionner votre sexe</option>
   <option class="level-0" value="220">Homme</option>
   <option class="level-0" value="226">Femme</option>
  </select>
  <br>
  <input type="number" id="fcrepos" name="fcrep" maxlength="3" size="6">
  <label for="fcrepos">
   pulsations (BPM) : Fréquence cardiaque au repos 
   <i>(<acronym title="Fréquence cardiaque au repos">FC repos</acronym>)</i>
  </label>
  <br>
 </fieldset>
 
 <button id="calculer">Calculer</button>
 <button type="reset" name="Reset" value="Effacer">Effacer</button>
 
 <fieldset>
  <legend>
   Résultats
  </legend>
  <p id="fcmax"></p>
  <label for="fcmax">
   pulsations (BPM) : Fréquence cardiaque max 
   <i>(<acronym title="Fréquence cardiaque max">FC max</acronym>)</i>
  </label>
  <br>
  <p id="fcres"></p>
  <label for="fcres">
    pulsations (BPM) : Fréquence cardiaque de réserve 
   <i>(<acronym title="Fréquence cardiaque de réserve">FC réserve</acronym>)</i>
  </label>
  <p id="Endurance1"></p> pulsations (BPM) 50% de la FC réserve
   <p id="Endurance2"></p> pulsations (BPM) 70% de la FC réserve
   <p id="Resdouce"></p> pulsations (BPM) 85% de la FC réserve
   <p id="Resdure"></p> pulsations (BPM) 95% de la FC réserve
 </fieldset>
</form>

Modifié par dafid5 (16 Nov 2016 - 12:25)
Bonsoir,

Un petit truc me pique les yeux : en html5 la balise acronym est dépréciée. Préférez <abbr>.

Concernant l'histoire des variables je dois avouer ne pas avoir compris la demande.

Bon courage !
Smiley smile
Greg_Lumiere a écrit :
Bonsoir,
Concernant l'histoire des variables je dois avouer ne pas avoir compris la demande.

Bon courage !
Smiley smile


Et bien j'ai voulu rajouter les 4 variables suivantes :

var endurance1 = 0.5;
var endurance2 = 0.7;
var resdouce = 0.85;
var resdure = 0.95;


mais je ne sais pas si le faite d'avoir utiliser get... est la bonne méthode pour récupérer ce genre de variable ?

......
    	endurance1.innerHTML = getEndurance1(age.value, sexe.value, fcrepos.value, endurance1);
    	endurance2.innerHTML = getEndurance2(age.value, sexe.value, fcrepos.value, endurance2);
    	resdouce.innerHTML = getResdouce(age.value, sexe.value, fcrepos.value, resdouce);
    	resdure.innerHTML = getResdure(age.value, sexe.value, fcrepos.value, resdure);
    } else {
    	console.log("There is empty fields");
    }
});
dafid5 a écrit :

mais je ne sais pas si le faite d'avoir utiliser get... est la bonne méthode pour récupérer ce genre de variable ?
Je suis fort limite en JS mais selon MDN la syntaxe impose de séparer la commande de la variable. Cette commande permet de lier une variable à une fonction or vous semblez lier une variable à d'autres variables.

Peut-être que je fais erreur en vous disant cela ou... peut-être pas ;-P
Modérateur
Salut dafid5,

Content que ça marche enfin ! Smiley cligne

Alors pour ta question de variable il y a une incohérence. Tu utilises la même variable pour deux choses très différentes.
Quand tu définis :
var endurance1 = 0.5;

Tu dis juste que var endurance1 est un nombre ok ?
En faisant :
getEndurance1(age.value, sexe.value, fcrepos.value, endurance1);

Tu passes ce nombre à la fonction, pour t'en servir, pas de soucis jusque là.
La ou ca coince c'est pour le :
endurance1.innerHTML

le .innerHTML va servir à mettre un texte dans un élément du DOM mais ici endurance1 est un nombre !
Regarde dans ton code les autres endroit ou tu as utilisé .innerHTML et regarde à quoi il est raporté.
Il te faut 2 variables : ta valeur pour les calcul d'un coté qui sera un nombre et ton élément HTML de l'autre coté pour pouvoir afficher le résultat.

Logique non ? Smiley smile

Bonne journée
_laurent a écrit :

La ou ca coince c'est pour le :
endurance1.innerHTML

le .innerHTML va servir à mettre un texte dans un élément du DOM mais ici endurance1 est un nombre !
Regarde dans ton code les autres endroit ou tu as utilisé .innerHTML et regarde à quoi il est raporté.
Il te faut 2 variables : ta valeur pour les calcul d'un coté qui sera un nombre et ton élément HTML de l'autre coté pour pouvoir afficher le résultat.

Logique non ? Smiley smile


Logique Smiley cligne après explications

ça marche pratiquement, je rencontre un souci de calcul avec Endurane1 alors que l'écriture de mes autres variables sont pareils ..
var age = document.getElementById("age");
var sexe = document.getElementById("sexe");
var fcrepos = document.getElementById("fcrepos");
var fcmax = document.getElementById("fcmax");
var fcres = document.getElementById("fcres");
var endurance1 = document.getElementById("Endurance1");
endurance1 = "0.5";
var endurance2 = document.getElementById("Endurance2");
endurance2 = "0.7";
var resdouce = document.getElementById("Resdouce");
resdouce = "0.85";
var resdure = document.getElementById("Resdure");
resdure = "0.95";

document.getElementById("calculer").addEventListener("click", function(event) {
		event.preventDefault();
    if(age.value && sexe.value && fcrepos.value) {
    	console.log("Calculating...");
    	fcmax.innerHTML = getFcmax(age.value, sexe.value);
    	fcres.innerHTML = getFcres(age.value, sexe.value, fcrepos.value);
    	Endurance1.innerHTML = getEndurance1(age.value, sexe.value, fcrepos.value, endurance1);
    	Endurance2.innerHTML = getEndurance2(age.value, sexe.value, fcrepos.value, endurance2);
    	Resdouce.innerHTML = getResdouce(age.value, sexe.value, fcrepos.value, resdouce);
    	Resdure.innerHTML = getResdure(age.value, sexe.value, fcrepos.value, resdure);
    } else {
    	console.log("There is empty fields");
    }
});


function getFcmax(age, sexe) {
    var result = (sexe - age);
    return result;
}

function getFcres(age, sexe, fcrepos) {
    var result = (sexe - age) - fcrepos;
    return result;
}

function getEndurance1(age, sexe, fcrepos, endurance1) {
    var result = (((sexe - age) - fcrepos) * endurance1) + fcrepos;
    return result;
}

function getEndurance2(age, sexe, fcrepos, endurance2) {
    var result = (((sexe - age) - fcrepos) * endurance2) + fcrepos;
    return result;
}

function getResdouce(age, sexe, fcrepos, resdouce) {
    var result = (((sexe - age) - fcrepos) * resdouce) + fcrepos;
    return result;
}

function getResdure(age, sexe, fcrepos, resdure) {
    var result = (((sexe - age) - fcrepos) * resdure) + fcrepos;
    return result;
}


et j'ai essayé de rajouté la fonction .toFixed() pour limiter mes décimales.
mon exemple

function getEndurance1(age, sexe, fcrepos, endurance1) {
    var result = (((sexe - age) - fcrepos) * endurance1) + fcrepos;
    var total = result.toFixed(2);
    return total;
}
Modérateur
var endurance1 = document.getElementById("Endurance1");
endurance1 = "0.5";

hummmmm il n'y a rien qui te choque dans la réflexion ? Smiley langue

Imaginons que tu as besoin de farine (ton élément du DOM) et de sucre (le nombre 0.5) pour faire ta recette (le calcul). Du coup il te faut des récipients (les variables) pour ranger ces éléments avant de faire la recette.
Ici tu sors un nouveau saladier (var endurance1) et tu met la farine dedans (var endurance1 = document.getElementById("Endurance1");).
Est-ce que tu vois ce que tu fais en faisant : endurance1 = "0.5"; juste apres ? Tu dis j'ai mis ma farine dans le saladier 1 et juste apres tu dis je vais plutot mettre le sucre dans le saladier 1, du coup tu balance ta farine par terre et tu met le sucre. Smiley biggol

Il te faut un autre saladier !!!!! Smiley lol
Modifié par _laurent (16 Nov 2016 - 14:53)
_laurent a écrit :

Imaginons que tu as besoin de farine (ton élément du DOM) et de sucre (le nombre 0.5) pour faire ta recette (le calcul). Du coup il te faut des récipients (les variables) pour ranger ces éléments avant de faire la recette.
Ici tu sors un nouveau saladier (var endurance1) et tu met la farine dedans (var endurance1 = document.getElementById("Endurance1");).
Est-ce que tu vois ce que tu fais en faisant : endurance1 = "0.5"; juste apres ? Tu dis j'ai mis ma farine dans le saladier 1 et juste apres tu dis je vais plutot mettre le sucre dans le saladier 1, du coup tu balance ta farine par terre et tu met le sucre. Smiley biggol

Il te faut un autre saladier !!!!! Smiley lol

J'adore ton analogie Smiley clapclap
Pages :