无法使用我在

问题描述 投票:1回答:1

所以我正在使用<input type="number">制作此计算器应用程序,但是当我尝试单击html按钮以键入点时,出现此错误:The specified value "." is not a valid number. The value must match to the following regular expression: -?(\d+|\d+\.\d+|\.\d+)([eE][-+]?\d+)?但是,如果我单击输入并使用键盘输入点,它将起作用。这是代码:

<input type="number" placeholder="Enter A Number....">

dot.addEventListener("click", function() {
    input.value += this.textContent;
})

<tr>
    <td><button id="dot">.</button></td>
    <td><button id="zero">0</button></td>
    <td><button id="equal">=</button></td>
</tr>

Here's the calculator

这就是计算器。

任何帮助将不胜感激,并在此先感谢。

javascript html dom
1个回答
0
投票

问题是,点实际上不是数字-它是一个字符串。但是,您输入的文本字段设置为'number'类型。

在click事件的回调函数中,您试图将输入字段的值更改为。textContent属性的值。这将始终返回一个字符串,因此会出现错误。

我建议将计算器按钮的所有输入存储在一个临时字符串中,并最终在将其发送到输入文本字段之前对该变量执行parseFloat()。这会将您的输入转换为正确的数字。

例如

var myInput="";
dot.addEventListener("click", function() {
    myInput+=this.textContent;
    input.value = parseFloat(myInput);
})
© www.soinside.com 2019 - 2024. All rights reserved.