Проблема в том, что точка на самом деле не число, а строка. Однако ваше текстовое поле ввода имеет тип ' number '.
В функции обратного вызова для события click вы пытаетесь изменить значение поля ввода на значение .textContent свойство. Это всегда будет возвращать строку, поэтому вы получите ошибку.
Я бы порекомендовал сохранить все входы кнопок вашего калькулятора во временной строке и в конечном итоге сделать parseFloat () для этой переменной перед отправкой в ваше текстовое поле ввода. Это преобразует ваш ввод в правильное число.
например,
var myInput="";
dot.addEventListener("click", function() {
myInput+=this.textContent;
input.value = parseFloat(myInput);
})
Вот пример:
var myInput = "";
dot.addEventListener("click", function() {
myInput += this.textContent;
input.value = parseFloat(myInput);
})
one.addEventListener("click", function() {
myInput += this.textContent;
input.value = parseFloat(myInput);
})
<input type="number" id="input" placeholder="Enter A Number....">
<tr>
<td><button id="dot">.</button></td>
<td><button id="one">1</button></td>
</tr>