在javascript中,”+”號運算符同時充當數學加號和連接符。這會在form表單的域值相加時出現問題,例如,因爲javascript是一個弱類型語言,form 域的值將會被當作數組來處理,而你把它們”+”一起的時候,”+”將被當成連接符,而非數學加號。
有問題的例子:
<form name="myform" action="[url]">
<input type="text" name="val1" value="1">
<input type="text" name="val2" value="2">
</form>
function total() {
var theform = document.forms["myform"];
var total = theform.elements["val1"].value + theform.elements["val2"].value;
alert(total); // 這個將會彈出 "12", 但你想要的是 3!
}
解決這個問題,javascript 需要一個提示來讓它把這些值當做數字來處理。你可以使用”+”號來把數組轉換成數字。給變量或者表達式前置一個”+”號將會強制其當作一個數字來處理,而這也將使得數學”+”得以成功應用。
修改好的代碼:
function total() {
var theform = document.forms["myform"];
var total = (+theform.elements["val1"].value) + (+theform.elements["val2"].value);
alert(total); // This will alert 3
}