2012-06-29 5 views
0

Je ne peux pas pour la vie de moi comprendre le problème suivant (je ne suis pas très bien avec JavaScript).Javascript mathématique onkeyup question

C'est le code que j'ai:

<script type='text/javascript'>//<![CDATA[ 
window.onload=function(){ 

<?php print("var base = " . $cash2points . " ;\n");?> 
    document.getElementById('numberField').onkeyup = function() { 
     if(this.value.length == 0) { 
     document.getElementById('result').innerHTML = ''; 
     return; 
     } 
     var number = parseInt(this.value); 
     if(isNaN(number)) return; 
     document.getElementById('result').innerHTML = number * base; 
    }; 
    document.getElementById('numberField').onkeyup(); 


<?php print("var base1 = " . $points2cash . " ;\n");?> 
    document.getElementById('numberField1').onkeyup = function() { 
     if(this.value.length == 0) { 
     document.getElementById('result1').innerHTML = ''; 
     return; 
     } 
     var number = parseInt(this.value); 
     if(isNaN(number)) return; 
     document.getElementById('result1').innerHTML = number * base1; 
    }; 
    document.getElementById('numberField1').onkeyup(); 
}//]]> 

</script> 

$cash2points = 100 et $points2cash = 0.01 la deuxième partie du code avec base1 fonctionne comme un charme, il me donnera des décimales dans le <span> mais quand je rentre quelque chose comme 0.01 dans numberfieldbase = $cash2points il me donne juste un 0, mais il devrait afficher 1 est là quelque chose qui me manque, ou est-ce juste quelque chose qui ne peut pas être fait. J'ai essayé de faire $cash2points = 100.00 mais cela produisait toujours les mêmes résultats.

Je suis assez sûr que les nombres décimaux reviennent faux pour isNaN donc je ne pense pas que ce soit le problème non plus.

Tous les conseils ou les pointeurs sont très appréciés.

+0

'parseInt (this.value);' peut-être? – Herbert

Répondre

3

Étant donné que vous avez enveloppé number dans parseInt, vous allez uniquement récupérer les valeurs entières - et les valeurs flottantes (comme 0.01) seront tronquées en nombre entier. Essayez d'utiliser parseFloat à la place.

+0

Fonctionne comme un charme merci beaucoup! J'ai vraiment besoin de lire les différentes fonctions d'analyse – kira423