gpt4 book ai didi

javascript - 如何修复 Javascript 乘法 onchange

转载 作者:行者123 更新时间:2023-12-03 00:19:03 38 4
gpt4 key购买 nike

我不确定为什么我的代码在更改它们时没有将这两个数字相乘。一旦我在“乘数”字段中输入数字,onchange 函数就会继续添加值,如果它是空值,则会输入“NaN”

<body> 
<h1>Mutiply</h1>
<p>Multiplicand: <input type="text" id="multiplicand" value="0" onchange="multiply()"></p>
<p>Multiplier: <input type="text"/ id="multiplier" value="0" onchange="multiply()"></p> <br>
<div>
<p><span id="showMulipicand">0</span>
×
<span id="showMultiplier">0</span> = <span id="showProduct">0</span></p>
</div>
<script src="multiply.js"></script>


multiply() {
var multiplicand = document.getElementById('multiplicand').value;
var multiplier = document.getElementById('multiplier').value;
var showProduct = parseInt(multiplicand) * parseInt(multiplier);
var p = document.getElementById('showProduct');
p.innerHTML += showProduct;
}

最佳答案

您正在将结果附加到 p 的内容中标签。

如果您只想显示结果,则必须覆盖innerHTML,而不是附加到它。

p.innerHTML = showProduct;

此外,如果您想在键入时更新结果,请使用 oninput事件而不是 onchange仅当您离开 <input> 时才会触发字段。

如果您还想更新乘数和被乘数字段,只需执行与乘积相同的操作即可:

document.getElementById('showMulipicand').innerHTML = multiplicand;

避免 NaN当您从 <input> 读取乘数/被乘数时出现问题,做一个逻辑or为 0,这样,如果该字段为空,则其值为 0。

您还应该更改 <input>输入 textnumber .

下面是显示乘法结果的代码:

function multiply() { 
const multiplicand = document.getElementById('multiplicand').value || 0;
const multiplier = document.getElementById('multiplier').value || 0;
const product = parseInt(multiplicand) * parseInt(multiplier);
document.getElementById('showMulipicand').innerHTML = multiplicand;
document.getElementById('showMultiplier').innerHTML = multiplier;
document.getElementById('showProduct').innerHTML = product;
}
<h1>Mutiply</h1>
<p>Multiplicand: <input type="number" id="multiplicand" value="0" oninput="multiply()"></p>
<p>Multiplier: <input type="number" id="multiplier" value="0" oninput="multiply()"></p>
<p>
<span id="showMulipicand">0</span> ×
<span id="showMultiplier">0</span> = <span id="showProduct">0</span>
</p>

关于javascript - 如何修复 Javascript 乘法 onchange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54407617/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com