所以我正在使用<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>
这就是计算器。
任何帮助将不胜感激,并在此先感谢。
问题是,点实际上不是数字-它是一个字符串。但是,您输入的文本字段设置为'number'类型。
在click事件的回调函数中,您试图将输入字段的值更改为。textContent属性的值。这将始终返回一个字符串,因此会出现错误。
我建议将计算器按钮的所有输入存储在一个临时字符串中,并最终在将其发送到输入文本字段之前对该变量执行parseFloat()。这会将您的输入转换为正确的数字。
例如
var myInput="";
dot.addEventListener("click", function() {
myInput+=this.textContent;
input.value = parseFloat(myInput);
})