我把两个数字相加,但我没有得到正确的值。

例如,执行1 + 2返回12而不是3

我在这段代码中做错了什么?

函数myFunction() { var y = document.getElementById("txt1").value; var z = document.getElementById("txt2").value; Var x = y + z; . getelementbyid(“演示”)。innerHTML = x; } < p > 点击按钮计算x。 <按钮onclick = " myFunction ()”> > < /按钮试试 < / p > < p > 输入第一个数字: <input type="text" id="txt1" name="text1" value="1"> 输入第二个数字: <input type="text" id="txt2" name="text2" value="2"> < / p > < p id = "演示" > < / p >


当前回答

使用parseFloat将字符串转换为包含十进制值的数字。

 function myFunction() {
      var y = document.getElementById("txt1").value;
      var z = document.getElementById("txt2").value;
      var x = parseFloat(y) + parseFloat(z);
      document.getElementById("demo").innerHTML = x;
    }

<p>
  Click the button to calculate x.
  <button onclick="myFunction()">Try it</button>
</p>
<p>
  Enter first number:
  <input type="text" id="txt1" name="text1" value="1">
  Enter second number:
  <input type="text" id="txt2" name="text2" value="2">
</p>
<p id="demo"></p>

其他回答

也许你可以使用这个函数来添加数字:

function calculate(a, b) {
  return a + b
}
console.log(calculate(5, 6))

你可以用正则表达式做一个预检查,不管它们是不是数字

function myFunction() {
    var y = document.getElementById("txt1").value;
    var z = document.getElementById("txt2").value;
    if((x.search(/[^0-9]/g) != -1)&&(y.search(/[^0-9]/g) != -1))
      var x = Number(y)+ Number(z);
    else
      alert("invalid values....");
    document.getElementById("demo").innerHTML = x;
  }

另一个解决方案,只是分享:):

var result=eval(num1)+eval(num2);

这也可以通过使用输出元素来实现更原生的HTML解决方案。

<form oninput="result.value=parseInt(a.valueAsNumber)+parseInt(b.valueAsNumber)">
  <input type="number" id="a" name="a" value="10" /> +
  <input type="number" id="b" name="b" value="50" /> =
  <output name="result" for="a b">60</output>
</form>

https://jsfiddle.net/gxu1rtqL/

输出元素可以作为容器元素,用于计算或输出用户的操作。您还可以将HTML类型从数字更改为范围,并使用不同的UI元素保持相同的代码和功能,如下所示。

<form oninput="result.value=parseInt(a.valueAsNumber)+parseInt(b.valueAsNumber)">
  <input type="range" id="a" name="a" value="10" /> +
  <input type="number" id="b" name="b" value="50" /> =
  <output name="result" for="a b">60</output>
</form>

https://jsfiddle.net/gxu1rtqL/2/

你也可以这样写: Var z = x - -y; 得到正确答案。

<body>

<input type="text" id="number1" name="">
<input type="text" id="number2" name="">
<button type="button" onclick="myFunction()">Submit</button>

<p id="demo"></p>

    <script>
    function myFunction() {
        var x, y ;

        x = document.getElementById('number1').value;
        y = document.getElementById('number2').value;

        var z = x - -y ;

        document.getElementById('demo').innerHTML = z;
    }
    </script>
</body>