2013-11-14 110 views
0

我只是想将我的小项目转换为英寸,但它似乎不起作用。它所做的只是将最后的数字添加到第一个数字的末尾。我一定做错了什么。我只想乘以第一个数字,然后将英寸添加到该数字。谢谢Javascript addition not working out

  <!doctype> 
      <html> 
      <head> 
      <meta charset="utf-8"> 
      <title>Are you tall enough</title> 
      <script type="text/javascript"> 

      function ride(){ 
       var rideMin = 64; 

       var ht = document.getElementById("height").value; 

       if(ht >= 64){ 
        alert("You may go on the ride!!"); 
       }else{ 
        alert("Sorry, you may not go on the ride"); 
       } 
      } 

      function converter(){ 

      var aa = document.getElementById("feet").value; 
      var bb = document.getElementById("inches").value; 

      var cc = (aa * 12); 

      var resu = bb+cc; 


      document.getElementById("results").value = resu; 

      } 



      </script> 
      <style> 

      .container{ 
       width: 960px; 
      } 

      input{ 

       width:250px; 
       height: 150px; 
       margin-left: 375px; 
      } 

      img{ 
       margin-left: 300px; 
       max-width: 100%; 
       width: 40%; 
       margin-bottom: 100px; 
      } 

      h1{ 
       margin-left: 200px; 
       margin-bottom: 50px; 
       color: blue; 
      } 

      .conversion{ 
       margin: 0; 
       width: 100px; 
       height: 50px; 
      } 

      .convert{ 
       margin-left: 390px; 
      } 

      .results{ 
       width: 100px; 
       height: 50px; 
       margin-left: 438px; 
       margin-bottom: 50px; 
      } 
      </style> 

      </head> 
      <body> 
      <div class="container"> 
      <h1> Are you tall enough to ride the roller coaster</h1> 
      <img src="roller.png"> 
      <div class="convert"> 
      <h3>Convert feet to inches</h3> 
      <input class="conversion" type="text" id="feet" placeholder="Enter feet here"> 
      <input class="conversion" type="text" id="inches" placeholder="Enter inches here"> 
      <input class="conversion" type="submit" onclick="converter()"> 
      </div> 
      <div class="result"> 
      <input id="results" type="text" readonly> 
      <div class="height"> 
      <input type="text" id="height" placeholder="Please enter your height in inches please"> 
      <input type="submit" value="sumbit" onclick=ride()> 
      </div> 






      </div> 






      </body> 
      </html> 
+6

输入值总是字符串。 '“2”+“3”'(或者甚至是“2”+ 3')是串联的,而不是加法。根据需要使用'parseInt(bb)','parseFloat(bb)'或'+ bb'。 (我会看看是否可以找到重复。) – apsillers

+0

啊,松散类型语言的恶魔。我更喜欢在编译时发现错误。 – Katana314

回答

0

使用parseInt函数转换为整数:

function converter(){ 

      var aa = parseInt(document.getElementById("feet").value, 10); 
      var bb = parseInt(document.getElementById("inches").value, 10); 

      var cc = (aa * 12); 

      var resu = bb+cc; 


      document.getElementById("results").value = resu; 

    } 
+0

我建议你'parseInt(val,10)'确保你得到正确的结果。 –

+0

非常感谢。这可能是一个愚蠢的问题,但10做什么?我可以只做parseInt吗? – user2684242

+0

@ user2684242它强制'parseInt'将输入字符串视为基数10.规范说基本系统“假定为”10“,除非数字以字符对”0x“或”0X“开头,在这种情况下......假设是'16'。“比较'parseInt(“0xFF”)'和'parseInt(“0xFF”,10)'。 – apsillers

0

使用这个代替:

function ride(){ 
       var rideMin = 64; 

       var ht = document.getElementById("height").value; 

       if(parseInt(ht) >= 64){ 
        alert("You may go on the ride!!"); 
       }else{ 
        alert("Sorry, you may not go on the ride"); 
       } 
      } 

      function converter(){ 

      var aa = parseFloat(document.getElementById("feet").value); 
      var bb = parseFloat(document.getElementById("inches").value); 

      var cc = (aa * 12); 

      var resu = bb+cc; 


      document.getElementById("results").value = resu; 

      } 
0

如果你不想使用parseInt,你可以使用一个加号强制将字符串转换为整数。

var aa = +document.getElementById("feet").value; 
var bb = +document.getElementById("inches").value; 

Fiddle