我创建了一个表单,它接受两个文本输入,第一个数字和第二个数字。我试图获得用户提供的输入,并找到它的总和,但我无法这样做。
<form action="">
<label for="fnum">first Number:</label>
<input
type="number"
id="fnum"
name="fnum"
placeholder="first num"
/><br /><br />
<label for="snum">second num:</label>
<input
type="number"
id="snum"
placeholder="second num"
name="snum"
/><br /><br />
<!-- <label for="btn">Button</label> -->
<button id="btn" onclick="ad(a,b)">add</button>
</form>
//js
a = document.querySelector("#fnum").value;
b = document.querySelector("#snum").value;
const ad = (a, b) => (c = a + b);
document.write(c);
4条答案
按热度按时间xwbd5t1u1#
要添加其他人已经发布的内容,现在习惯于添加
addEventListener
对元素而不是内联使用函数调用。这里我使用了一个函数,名为handleClick
它在单击按钮时调用,并将缓存的输入元素的值(从字符串强制为数字)附加到div
在页面上而不是使用document.write
.如果您的脚本在
head
html的一部分将其移动到</body>
标记,以便dom可以加载,javascript可以缓存加载的元素。3htmauhk2#
document.write
将更改整个正文,而不是使用在提交时编辑的单独元素。还有,因为
.value
返回一个字符串,我们需要将这些值转换为整数以将它们相加,因此c = +a + +b
.这个
const ad = (a, b) => (c = a + b);
没有那么大意义,它定义了一个函数,let c = +a + +b;
应该没问题。kyvafyod3#
页面加载后不能使用document.write。它会擦干净这一页
您需要一个事件来触发求和,并且需要在事件处理程序中获取值,而不是在它之外
我将这些值添加到span元素中,以便在提交时重置表单
eivgtgni4#
您需要添加
write
调用事件处理程序。此外,如果按钮正在表单中使用,则应使用submit事件。此外,您还需要在添加整数值之前对其进行缩减,因为它们将被视为字符串串联。我还将使用javascript将处理程序附加到表单,以访问事件对象。这允许您在将内容写入页面后,防止表单的默认提交被导航到别处。