Как ограничить ввод определенных символов в инпут JS
Как в простом калькуляторе ограничить ввод символов в инпутe, оставить только цифры и английские буквы?
<body>
<input id="number1" type="text" value="">
<hr>
<input type="text" id="operator">
<hr>
<input id="number2" type="text">
<hr>
<button onclick="calc()">Результат</button>
<div id="result"></div>
</body>
</html>
function calc() {
let result;
let number1 = Number(document.getElementById("number1").value);
let number2 = Number(document.getElementById("number2").value);
let operator = String(document.getElementById("operator").value);
if (operator == "+") {
result = number1 + number2;
} else if (operator == "-") {
result = number1 - number2;
} else if (operator == "*") {
result = number1 * number2;
} else if (operator == "/") {
result = number1 / number2;
} else {
result = "Ошибка ввода данных";
}
document.getElementById('result').innerHTML = result; //вывод результата на страницу
}
Ответы (1 шт):
Автор решения: Kain
→ Ссылка
Добавьте слушатель на событие input, оно будет срабатывать при вводе каждого символа или change, оно сработает после того, как элемент потеряет фокус:
<input id="number2" oninput="check_symbols()" type="text">
В check_symbols заменяйте ненужные символы функцией replace:
text = text.replace(/\W/g, '');
Проблема тут в том, что при использовании события input может теряться положение каретки, но это уже совсем другая история...