IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Fonctions pour calculs automatiques


Sujet :

JavaScript

  1. #1
    Membre très actif
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Par défaut Fonctions pour calculs automatiques
    Bonjour à tous,
    J'aimerai automatiser des calculs au chargement de la page et avec onkeyup.
    Cependant, tout ne fonctionne pas comme je le veux.
    Voici mon code épuré (ma page de test) :
    Code : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    <html>
    <head>
    <script type="text/javascript">
    	function Calc_Pos1() { 
    	var PrixEntrePos1 =((document.getElementById('PtEntre_1').value - document.getElementById('Strike_1').value)+2)/100;
    	PrixEntrePos1 =  Math.round(PrixEntrePos1*100)/100;
    	PrixEntreTurbo1Calc.innerHTML = PrixEntrePos1;
     
    	var PrixTPPos1 =((document.getElementById('TP_1').value - document.getElementById('Strike_1').value)-2)/100;
    	PrixTPPos1 =  Math.round(PrixTPPos1*100)/100;
    	PrixTurboTP_1Calc.innerHTML = PrixTPPos1;
     
    	var GainTP1 = (document.getElementById("PrixTurbotTP_1User").value - document.getElementById("PrixTurbotEntre_1").value)* document.getElementById("QteUser_1").value;
    	GainTP1 = Math.round(GainTP1*100)/100;
    	GainTurbotTP_1.innerHTML=GainTP1;
     
    	var PrixSLPos1 =((document.getElementById('SL_1').value - document.getElementById('Strike_1').value)-2)/100;
    	PrixSLPos1 =  Math.round(PrixSLPos1*100)/100;
    	PrixTurboSL_1Calc.innerHTML = PrixSLPos1;
     
    	var GainSL1 = (document.getElementById("PrixTurbotSL_1User").value - document.getElementById("PrixTurbotEntre_1User").value)* document.getElementById("QteUser_1").value;
    	GainSL1 = Math.round(GainSL1*100)/100;
    	GainTurbotSL_1.innerHTML=GainSL1;
    	}
     
    	function Chargement_Pos1() { 
    	document.getElementById("PrixTurbotEntre_1User").value = PrixEntreTurbo1Calc.innerHTML;
    	document.getElementById("PrixTurbotTP_1User").value = PrixTurboTP_1Calc.innerHTML;
    	document.getElementById("PrixTurbotSL_1User").value = PrixTurboSL_1Calc.innerHTML;
    	Calc_Pos1();
    	}
     
    	function Chargement() { 
    	document.getElementById("QteUser_1").value=document.getElementById("QteCalc_1").value;
    	Chargement_Pos1();
    	}
    </script>
    </head>
     
    <body onload ="Chargement()">
    Ex. Price : <input type="text" id="Strike_1" name="Strike_1" value="4224.90" size="6"/>
    </br>
    Qt&eacute;. :
    	<input type="text" id="QteCalc_1" name="QteCalc_1" value="4680" size="4" readonly="readonly"/>
    	<input type="text" id="QteUser_1" name="QteUser_1" size="4" onkeyup="Chargement_Pos1()"/>
    </br>
    P-E :
    	<input type="text" id="PtEntre_1" name="PtEntre_1" value="4685" size="5" onkeyup="Calc_Pos1()"/>
    	Calc : <span id="PrixEntreTurbo1Calc"></span>
    	User : <input type="text" id="PrixTurbotEntre_1User" name="PrixTurbotEntre_1User" size="5" onkeyup="Calc_Pos1()" />
    </br>
    T-P : 
    	<input type="text" id="TP_1" name="TP_1" value="4730" size="5" onkeyup="Chargement_Pos1()"/>
    	Calc : <span id="PrixTurboTP_1Calc"></span>
    	User : <input type="text" id="PrixTurbotTP_1User" name="PrixTurbotTP_1User" size="5" onkeyup="Calc_Pos1()"/>
    	Earn : <span id="GainTurbotTP_1"></span>
    </br>
    S-L : 
    	<input type="text" id="SL_1" name="SL_1" value="4590" size="5" onkeyup="Chargement_Pos1()"/>
    	Calc : <span id="PrixTurboSL_1Calc"></span>
    	User : <input type="text" id="PrixTurbotSL_1User" name="PrixTurbotSL_1User" size="5"onkeyup="Calc_Pos1()"/>
    	Earn : <span id="GainTurbotSL_1"></span>
    </body>
    </html>
    Mes soucis sont les suivants : Les éléments ci-dessous sont vides et le restent malgré une modification d'autres champs "sensibles" à onkeyup
    • Le span PrixTurboSL_1Calc
    • Le champ PrixTurbotEntre_1User
    • Le champ PrixTurbotTP_1User
    • Le champ PrixTurbotSL_1User
    • Le span GainTurbotTP_1
    • Le span GainTurbotSL_1


    Quelqu'un aurait une idée pour savoir d'où vient la ou les erreurs ?
    Merci d'avance pour votre aide

  2. #2
    Membre très actif
    Homme Profil pro
    rien
    Inscrit en
    Décembre 2015
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Décembre 2015
    Messages : 282
    Par défaut
    Salut

    Pour celui-là (j'ai pas regardé les autres) : PrixTurboSL_1Calc

    Son initialisation est faite dés le départ du script : PrixTurboSL_1Calc.innerHTML = PrixSLPos1;
    Mais je ne crois pas que ça puisse fonctionner sans utiliser "documenGet".

    En plus ta fonction de chargement ne le charge jamais.

  3. #3
    Membre très actif
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Par défaut
    Bonjour Progdebutant, et merci de t'intéresser à mon problème.
    J'ai essayé avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('PrixTurboSL_1Calc').value = PrixSLPos1;
    Rien n'y change, le problème reste inchangé.
    Ce qui m'étonne le plus c'est que j'ai fait un copier-collé de la ligne TP pour la ligne SL et que cette dernière fonctionne différemment de la première. Il doit y avoir une petite erreur toute bête, mais je n'arrive pas à la trouver ...

  4. #4
    Membre très actif
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Par défaut
    Petit UP
    J'en profites pour vous souhaitez une très bonne année à tous

    Personne n'a un petite idée ?

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 19
    Par défaut
    Bonjour,

    Je n'ai pas regardé en détails, mais à la place de "PrixTurbotEntre_1" se ne serai pas plutot "PrixTurbotEntre_1User" dans le calcul de GainTP1 de la fonction Calc_Pos1

  6. #6
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Salut et bonne année !

    Juste une remarque. J'ai pris ton code tel quel, enregistré dans un fichier HTML et ouvert avec Firefox. Dans la console (F12), j'ai ce message :
    Citation Envoyé par console
    TypeError: document.getElementById(...) is null __________________ bidule.html:13:71
    Les chiffres à la fin signifient que le problème se situe à la ligne 13, caractère 71. Ça correspond à document.getElementById("PrixTurbotEntre_1"). Cet élément n'existe pas dans ton code. Est-ce une faute de recopie / épuration du code ? Ou le problème est-il présent dans la version d'origine ?
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  7. #7
    Membre très actif
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Par défaut
    Effectivement, merci Watilin !
    J'avais beau chercher et chercher, je ne trouvais que ce qui clochait.
    Voici le code corrigé, s'il peut servir à quelqu’un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var PrixTPPos1 =((document.getElementById('TP_1').value - document.getElementById('Strike_1').value)-2)/100;
    	PrixTPPos1 =  Math.round(PrixTPPos1*100)/100;
    	PrixTurboTP_1Calc.innerHTML = PrixTPPos1;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Fonction pour calcul d'une suite récurrente
    Par moimoi89 dans le forum MATLAB
    Réponses: 2
    Dernier message: 31/10/2007, 17h08
  2. Existe-t-il une fonction pour calculer le kurtosis
    Par bichou dans le forum MATLAB
    Réponses: 1
    Dernier message: 19/06/2007, 17h01
  3. fonction pour calculer le temps de processus
    Par torNAdE dans le forum Threads & Processus
    Réponses: 2
    Dernier message: 23/10/2006, 15h54
  4. [Math] Fonction pour calculer Factorielle(n)
    Par Asdorve dans le forum Vos contributions VB6
    Réponses: 2
    Dernier message: 10/08/2006, 21h20
  5. Réponses: 6
    Dernier message: 22/11/2005, 17h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo