添加两个数字连接它们而不是计算总和

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

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

这个代码我做错了什么?

 function myFunction() { var y = document.getElementById("txt1").value; var z = document.getElementById("txt2").value; var x = y + 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> 

他们实际上是string不是数字。 从string中产生一个数字的最简单的方法是用+

 var x = +y + +z; 

我只是使用Number()

 var i=2; var j=3; var k = Number(i) + Number(j); // 5 

您需要使用javaScript的parseInt()方法将string转换为数字。 现在他们是string,所以添加两个string连接它们,这就是为什么你得到“12”。

使用parseInt(…),但确保指定一个基数值; 否则你会遇到几个错误(如果string以“0”开始,基数是八进制/ 8等)。

 var x = parseInt(stringValueX, 10); var y = parseInt(stringValueY, 10); alert(x + y); 

希望这可以帮助!

老板只是添加一个简单的types铸造方法作为input在文本中使用以下

  var y = parseInt(document.getElementById("txt1").value); var z = parseInt(document.getElementById("txt2").value); var x = y + z; 

简单

 var result = parseInt("1") + parseInt("2"); console.log(result ); // Outputs 3 

嗨,朋友很简单

 <html> <body> <p>Click the button to calculate x.</p> <button onclick="myFunction()">Try it</button> <br/> <br/>Enter first number: <input type="text" id="txt1" name="text1">Enter second number: <input type="text" id="txt2" name="text2"> <p id="demo"></p> <script> function myFunction() { var y = document.getElementById("txt1").value; var z = document.getElementById("txt2").value; var x = +y + +z; document.getElementById("demo").innerHTML = x; } </script> 

您在添加步骤中缺lesstypes转换…
var x = y + z; 应该是var x = parseInt(y) + parseInt(z);

  <!DOCTYPE html> <html> <body> <p>Click the button to calculate x.</p> <button onclick="myFunction()">Try it</button> <br/> <br/>Enter first number: <input type="text" id="txt1" name="text1">Enter second number: <input type="text" id="txt2" name="text2"> <p id="demo"></p> <script> function myFunction() { var y = document.getElementById("txt1").value; var z = document.getElementById("txt2").value; var x = parseInt(y) + parseInt(z); document.getElementById("demo").innerHTML = x; } </script> </body> </html> 

这段代码总结了两个variables! 把它放到你的函数中

 var y = parseInt(document.getElementById("txt1").value); var z = parseInt(document.getElementById("txt2").value); var x = (y +z); document.getElementById("demo").innerHTML = x;` 

如果我们有两个input字段,然后从input字段获取值,然后使用JavaScript添加它们。

 $('input[name="yourname"]').keyup(function(event) { /* Act on the event */ var value1 = $(this).val(); var value2 = $('input[name="secondName"]').val(); var roundofa = +value2+ +value1; $('input[name="total"]').val(addition); }); 

这不会总结数字,而是将它连接起来:

 var x = y + z; 

你需要做的是:

 var x = (y)+(z); 

您必须使用parseInt来指定对数字的操作。 例如:

 var x = parseInt(y) + parseInt(z); [final soulution, as everything us] 

你可以用正则expression式来预先检查他们是否是数字

 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; } 

尝试这个

 <!DOCTYPE html> <html> <body> <p> Add Section </p> <label>First No :</label> <input id="txt1" type="text"/><br /> <label>Second No :</label> <input id="txt2" type="text"/><br /> <input type="button" name="Add" value="Add" onclick="addTwoNumber()"/> <p id="demo"></p> <script> function myFunction() { document.getElementById("demo").innerHTML = Date(); } function addTwoNumber(){ var a = document.getElementById("txt1").value; var b = document.getElementById("txt2").value; var x = Number(a) + Number(b); document.getElementById("demo").innerHTML = "Add Value: " + x; } </script> </body> </html> 

另一种解决scheme,只是分享:):

 var result=eval(num1)+eval(num2); 
  <head> <script type="text/javascript"> function addition() { var a = parseInt(form.input1.value); var b = parseInt(form.input2.value); var c = a+b document.write(c); } </script> </head> <body> <form name="form" method="GET"> <input type="text" name="input1" value=20><br> <input type="text" name="input2" value=10><br> <input type="button" value="ADD" onclick="addition()"> </form> </body> </html> 

这里通过parsing函数中的variables来执行你的代码。

  <html> <body> <p>Click the button to calculate x.</p> <button onclick="myFunction()">Try it</button> <br/> <br/>Enter first number: <input type="text" id="txt1" name="text1"> <br>Enter second number: <input type="text" id="txt2" name="text2"> <p id="demo"></p> <script> function myFunction() { var y = parseInt(document.getElementById("txt1").value); var z = parseInt(document.getElementById("txt2").value); var x = y + z; document.getElementById("demo").innerHTML = x; } </script> </body> </html> 

回答

在这里输入图像描述

使用parseFloat它会将string转换为包含十进制值的数字。

  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> 
  <input type="text" name="num1" id="num1" onkeyup="sum()"> <input type="text" name="num2" id="num2" onkeyup="sum()"> <input type="text" name="num2" id="result"> <script> function sum() { var number1 = document.getElementById('num1').value; var number2 = document.getElementById('num2').value; if (number1 == '') { number1 = 0 var num3 = parseInt(number1) + parseInt(number2); document.getElementById('result').value = num3; } else if(number2 == '') { number2 = 0; var num3 = parseInt(number1) + parseInt(number2); document.getElementById('result').value = num3; } else { var num3 = parseInt(number1) + parseInt(number2); document.getElementById('result').value = num3; } } </script>