2013-11-26 63 views
-1

這是我的腳本..進行串聯,而不是另外的javascript

<script> 
function myFunction() 
{ 
var y=$("#text").val(); 
var z=10; 
var x=y+z; 
var demoP=document.getElementById("demo") 
demoP.innerHTML="x=" + x; 
} 
</script> 

它讀取文本字段的值,並用增值。但它執行連接而不是加法。我怎麼解決這個問題。??

回答

1

這條線:

var y=$("#text").val(); 

返回一個字符串。

你需要做的是轉換/強制這個結果使用下列方法之一的數字:

var y = parseInt($("#text").val(), 10); 

var y = parseFloat($("#text").val()); // returns a floating point number 

var y = Number($("#text").val()); 

var y = +$("#text").val(); 
+0

這可以工作......謝謝...... :) – Girish

+0

working var y = Number($(「#text」)。val()); – Girish

1
var y=parseInt($("#text").val()); 
1

因爲輸入的值是文本。

您需要將其轉換爲數字。

var x = +(y) + z; 

+(y)如果它是一個數字,它會安全地使它成爲數字。

+0

嘗試這個。但不工作... – Girish

+0

我不能說爲什麼它不工作。看到這個小提琴:http://jsfiddle.net/WNwEQ/。如果輸入不是數字,它應該拋出一個NaN – Abhitalks

0

嘗試:

var y=parseInt($("#text").val()); 
var z=10; 
var x=y+z; 
0

一個輸入值始終是一個字符串,以及添加一個字符串與數量將總是最終爲字符串。

爲了解決它,該字符串轉換爲數字與任一parseIntparseFloat,取決於值是什麼(整數或浮點數),或者只是其與加算子轉換爲數字類型在它前面:

var y = +$("#text").val(); 
var z = 10; 
var x = y+z;