2012-08-23 43 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