添加两个数字连接它们而不是计算总和
我添加了两个数字,但我没有得到正确的值。
例如,做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>