2012-08-23 24 views
0

我试图采取以英尺和英寸给出的高度,并将其转换为英寸(例如,6'1“将73”)。当我只有一个选择框(脚盒)时,我可以成功将其转换为英寸。但是,当我添加“英寸”变量,并尝试将其添加到转换后的“脚”变量时,什么都不会发生。多个变量不工作在Javascript

这里的脚本:

<script type="text/javascript" language="javascript"> 

function Calculate() { 

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

    height = ((feet*12) + inches); 

    document.write ('This is your height in inches:<b> ' + height.toFixed(0) + '</b><br>'); 
} 


</script> 

和HTML:

<div class="form"> 
Height: 
<select id="feet"> 
    <option value="4">4</option> 
    <option value="5">5</option> 
    <option value="6">6</option> 
    <option value="7">7</option> 
</select> 

<select id="inches"> 
    <option value="0">0</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
    <option value="6">6</option> 
    <option value="7">7</option> 
    <option value="8">8</option> 
    <option value="9">9</option> 
    <option value="10">10</option> 
    <option value="11">11</option> 
</select> 
<br /> 
<input type="submit" value="Calculate" onclick="Calculate()" /> 

在此先感谢

+0

什么是文本框的值类型? –

+3

您的代码中还有一个错字,它是大写字母B的getElementById。 –

回答

3

feetinches是字符串的结束,所以+连接。乘法蒙上feet为整数,所以你的6'1"结果将是721(72+"1"

应该转换到手动整数:

feet = parseInt(feet,10); 
inches = parseInt(inches,10); 

编辑:另外,作为乔&atilde;○指出的那样,你误大写getElementById在第二个。

+0

谢谢!我觉得这很简单。 – user1618377

0

你应该换在了英尺和英寸的值parseInt函数来确保它是一个整数。

当使用输入type='submit'它有不同的行为比type='button'常规输入,所以你要么需要的类型更改为button或把return false你的计算功能

1

有两个问题。

首先,在这一行

var inches = document.getElementbyId("inches").value; 

你忘了大写b。它应该是getElementById

此外,inches来自一个文本框,这意味着它是一个字符串,所以

height = ((feet * 12) + inches); 

也将是一个字符串,因为+也是一个字符串连接运算符。由于它是一个字符串,这意味着其原型中没有toFixed方法。

您可以通过字符串传递给Number或前面加上一个+,使之成为数,这样解决这个问题:

height = Number((feet * 12) + inches); 
//OR 
height = +((feet * 12) + inches); 
0

我知道这可能有点晚,但我扔进的jsfiddle这一点,清理了一些JS代码(我把它换成了jQuery的踢)。这可能值得一试。

example - jsFiddle