JavaScript输入文本框添加加号

时间:2014-01-18 16:17:11

标签: javascript

我对JavaScript中的添加符号有疑问我对此有点困惑。我有这个输入文本框,我将输入为50,它将添加加50。我添加数字的结果,例如我输入50结果是5050,这是完全错误的。有人可以帮我吗?

<!DOCTYPE html>
<html>
<head>
<title>activity 2</title>
<script type="text/javascript">
  function computeSalary(){
    var salaryData = document.form1.salary.value;
    var salary1 = salaryData  + 50;
    document.form1.newSalary.value = salary1;
  }
</script>
</head>
<body>
  <form name="form1">
    Enter the daily salary:
    <input type="text" name="salary" /><br />
    <input type="button" value="Compute" onClick="computeSalary();" /><br />
    <br />
    The new salary: <input type="text" name="newSalary" />
  </form>
</body>
</html>

3 个答案:

答案 0 :(得分:0)

更改以下行:

var salary1 = parseInt(salaryData)  + 50; // Use parseInt or parseFloat

原因是JavaScript会将字符串和整数强制转换为字符串。因此,您的整数50将转换为字符串,然后连接。

答案 1 :(得分:0)

您可以通过简单地添加一个加号,将您获得的字符串值(正在连接到您的值)转换为数字:

var salary1 = +salaryData  + 50;

<强> jsFiddle example

答案 2 :(得分:0)

在使用+运算符添加之前,必须将从输入控件获得的值转换为float或integer。在添加两个操作数之前,+运算符将两个操作数转换为相同的类型。这是你获得5050的主要原因,因为int类型的50被转换为字符串。

使用此代码:

function computeSalary(){
    var salaryData = document.form1.salary.value;
    var salary1 = parseFloat(salaryData)  + 50;
    document.form1.newSalary.value = salary1;
}