2011-07-27 70 views
0

嗨,我想在JavaScript中做兩個簡單的數字加法。當我試圖讓兩個輸入元素值,結果在兩個數字添加操作問題?

這裏的串聯來是代碼:

<html> 
<title> 
</title> 
<head> 
<script type="text/javascript"> 
function loggedUser() { 
    //Get GUID of logged user 
    //alert('success'); 
    var x, y , result; 
    x = document.getElementById('value1').value; 
    y = document.getElementById('value2').value; 
    result=x+y; 
    alert(result); 
    document.getElementById('res').value = result; 
} 
</script> 
</head> 
<body> 
<input type="text" id="value1"><br> 
<input type="text" id="value2"><br> 
<input type="text" id="res"> 
<input type="submit" value ="submit" onclick=loggedUser();> 
</body> 
</html> 

回答

3

輸入字段包含字符串。如果你想總結兩個數字,你必須在添加之前將字符串轉換爲數字 - 否則你只需要添加兩個字符串。有很多方法可以做到這一點,取決於你想要允許的。這裏有一個:

var x, y , result; 
    x = Number(document.getElementById('value1').value); 
    y = Number(document.getElementById('value2').value); 
    result=x+y; 
    alert(result); 
    document.getElementById('res').value = result; 

看到它在這裏工作:http://jsfiddle.net/jfriend00/BWW2R/

1

document.getElementById('').value返回一個字符串。您需要致電parseInt以使其成爲數字。

4

「+」運算符被重載。如果任何參數是字符串,則它們全部轉換爲字符串並連接。如果參數是數字,則添加完成。表單控制值始終是字符串。

轉換參數以數字首先使用下列之一:

x = Number(document.getElementById('value1').value); 

x = parseInt(document.getElementById('value1').value, 10); 

x = parsefloat(document.getElementById('value1').value); 

x = +document.getElementById('value1').value; 

x = document.getElementById('value1').value * 1; 

等等...

哦,你也可以把它轉換隻在必要時:

result = Number(x) + Number(y); 

1

這是因爲xy實際上是字符串,而不是數字。該元素的value字段始終是一個字符串,因此x+y會給出連接xy

您可以將xy解析爲整數並添加解析結果:這會給你想要的。

1

問題是,當你獲取這些值你得到一個字符串,並在結果你正在做一個串聯。你應該像這樣在x和y上都使用parseInt:

x = parseInt(document.getElementById('value1').value); 
y = parseInt(document.getElementById('value2').value);