2016-01-13 2 views
-1

J'écris un convertisseur de température et n'arrive pas à comprendre ce qui ne va pas avec mon javascript. Je n'arrive même pas à l'alerter en "courant". Ma fonction était appelée conversion, mais je pensais que c'était peut-être un mot clé de js, donc je l'ai changé pour tempConvert. Le code est supposé convertir les températures entre elles.Mon JavaScript ne fonctionne pas dans mon convertisseur de température

Deux tests que j'utilise sont

32F = 0C 

et

72F = 22.22222...C 

Il fonctionne bien dans les messages rapides et alerte, maintenant je veux utiliser des boîtes d'entrée.

<!DOCTYPE html /> 

<html> 
<head> 
    <script type="text/javascript">   
     function tempConvert(){ 
      alert("running."); 
      var f = document.getElementById("fahrenheit").value; //Gets the value for farenheit. 
      var c = document.getElementById("celsius").value; //Gets the value for celsius 
      var tf = isNumber(f); //Test if the value of f is a number. 
      var tc = isNumber(c); //Test if the value of c is a number. 

      if (tf = true){ 
//if f is a number run this 
       c = (f-32)/1.8; //conversion from f to c 
       document.getElementById("celsius").value = c; //sets the value of the celsius input box to c. 
       alert(c); 
      } else if (tc = true){ 
// does the same as previous if statement, switching temperature types. 
       f = (c+32)*1.8; 
       document.getElementById("fahrenheit").value = f; 
      } else { 
       alert("One of your inputs are invalid."); 
// alerts the user if f and c are not a number. 
      } 
     } 

     funcion isNumber(test){ //A custom function(method) used to test if f or c is a number 
      return !isNaN(parseFloat(test)) && isFinite(test); //copied from another article in stackoverflow (http://stackoverflow.com/questions/6449611/how-to-check-whether-a-value-is-a-number-in-javascript-or-jquery) 
     } 
    </script> 
</head> 
<body> 
    <input id="fahrenheit" placeholder="fahrenheit"></input> = 
    <input id="celsius" placeholder="celsius"></input> 
    <input type="button" value="convert" onclick="tempConvert()" /> 
</body> 
</html> 
+0

Avez-vous des erreurs? Ou la fonction n'appelle même pas .. – Thangadurai

+0

Erreur d'orthographe de fonction dans la ligne suivante: funcion isNumber (test); –

+0

Désolé, le code n'était tout simplement pas en cours d'exécution. –

Répondre

1

Working Fiddle

Vous avez tout à fait quelques erreurs de syntaxe dans votre code (assurez-vous d'écouter votre console et voir pourquoi votre programme ne fonctionne pas).

funcion isNumber(test){ 
^^^^^^^ 
    .... 
} 

Vous avez mal orthographié function ici.

également ne pas oublier que= et == sont très différents! Dans votre code, vous définissez accidentellement tf et tc au lieu de les comparer dans votre if statements.

Par exemple, ici:

if (tf = true){ 
    ^
    ... 
} 

devrait être:

if (tf == true){ 
     ^^ 
    ... 
} 
+0

Merci @Nick Zuber –

+0

@JosephLyle Content de pouvoir aider! –

0

Vous avez mal orthographié la fonction dans votre fonction isNumber. Si vous changez de fonction pour fonctionner, je suis sûr que tout fonctionnera. Pour référence future, vous pouvez jeter un oeil à votre console javascript dans un navigateur pour diagnostiquer ce genre de chose. Contrôle + Maj + J dans Chrome.

0

fonction fautes d'orthographe funcion isNumber(test);-function isNumber(test); ici est le code

<html> 
<head> 
    <script>   
     function tempConvert(){ 
      alert("running."); 
      var f = document.getElementById("fahrenheit").value; //Gets the value for farenheit. 
      var c = document.getElementById("celsius").value; //Gets the value for celsius 
      var tf = isNumber(f); //Test if the value of f is a number. 
      var tc = isNumber(c); //Test if the value of c is a number. 

      if (tf = true){ 
//if f is a number run this 
       c = (f-32)/1.8; //conversion from f to c 
       document.getElementById("celsius").value = c; //sets the value of the celsius input box to c. 
       alert(c); 
      } else if (tc = true){ 
// does the same as previous if statement, switching temperature types. 
       f = (c+32)*1.8; 
       document.getElementById("fahrenheit").value = f; 
      } else { 
       alert("One of your inputs are invalid."); 
// alerts the user if f and c are not a number. 
      } 
     } 

     function isNumber(test){ //A custom function(method) used to test if f or c is a number 
      return !isNaN(parseFloat(test)) && isFinite(test); //copied from another article in stackoverflow (http://stackoverflow.com/questions/6449611/how-to-check-whether-a-value-is-a-number-in-javascript-or-jquery) 
     } 
    </script> 
</head> 
<body> 
    <input id="fahrenheit" placeholder="fahrenheit"></input> = 
    <input id="celsius" placeholder="celsius"></input> 
    <input type="button" value="convert" onclick="tempConvert()" /> 
</body> 
</html> 
0

Même si une question est déjà répondu juste pensé que ce peut être un peu interactif en tout tordant un peu et enlever le button .Ici est ce que je faisais

HTML

<input id="fahrenheit" placeholder="fahrenheit" onkeyup="tempConverter(event)"> = 
<input id="celsius" placeholder="celsius" onkeyup="tempConverter(event)"> 

JS

function tempConverter(event){ 
// using event object to get the parameters 
var getTarget = event.target.id; 
var getTargetValue = event.target.value; 

    //When no input value is present 
    if(getTargetValue ==""){ 
     document.getElementById("celsius").value = ""; 
     document.getElementById("fahrenheit").value = ""; 
    } 

    // populate the relevant input box 
    if(isNumber(getTargetValue)){ 

     if(getTarget ==="fahrenheit"){ 
      document.getElementById("celsius").value = getCelcius(getTargetValue); 
     } 
     else if(getTarget ==="celsius"){ 
      document.getElementById("fahrenheit").value = getFarenheit(getTargetValue); 
     } 
    } 

} 

// Convert from c->f 
function getFarenheit(c){ 
    var f =0; 
    f = 1.8*c+32; 
    return f; 

} 

//Convert from f->c 
function getCelcius(f){ 
    var c = 0; 
    c = (f-32)/1.8; 
    return c; 
} 

//test if it is number 
function isNumber(test){ 
    return !isNaN(parseFloat(test)) && isFinite(test); 
} 

JSFIDDLE