我是JavaScript的新手,我正在学习使用JavaScript和HTML创建一个简单的计算器。
我有两个输入Fld1
和Fld2
。当我在输入中输入值时,应该将其相加。但是当我在JavaScript中调用值时,它会为两个输入返回'NaN',即使我已经将它们解析为数字。
<input type="number" name="NumberField1" id="Fld1" placeholder="0" required>
<input type="number" name="NumberField2" id="Fld2" placeholder="0" required>
let num1 = parseFloat(document.getElementById("Fld1").value);
let num2 = parseFloat(document.getElementById("Fld2").value);
let output = num1 + num2;
我希望output
是num1
和num2
的和。
我做错了什么?我应该尝试什么?请帮帮我...
我尝试在它里面添加一个默认值标签value="0"
。但是当我这样做时,即使我输入不同的数字,值也是0。
<input type="number" name="NumberField1" id="Fld1" value="0" placeholder="0" required>
<input type="number" name="NumberField2" id="Fld2" value="0" placeholder="0" required>
我甚至尝试更改输入类型,删除占位符并将值更改为0x 1 m6n1x。什么都不管用!
帮帮我!
完整代码
<body>
<main>
<h1>Calculator</h1>
<div id="right">
<div class="inner">
<div id="inputs">
<input type="number" name="NumberField1"
id="Fld1" placeholder="0" required>
<input type="number" name="NumberField2"
id="Fld2" placeholder="0" required>
</div>
<button id="equals"
onclick="Submit()">=</button>
<div id="output">
<hr>
<span>0</span>
</div>
</div>
</div>
</div>
</main>
<script>
let num1 = parseFloat(document.getElementById("Fld1").value);
let num2 = parseFloat(document.getElementById("Fld2").value);
function Submit() {
document.querySelector("#output > span").innerHTML = num1 + num2;
}
</script>
</body>
2条答案
按热度按时间jtjikinw1#
这是因为脚本在输入值更改之前运行。将计算移至
Submit
函数中dgenwo3n2#
因为变量的值只在页面加载时更新一次。每次调用Submit按钮时都应该更新它。移动到提交按钮内的行下方