#javascript
#javascript
Вопрос:
Привет, я хотел бы ограничить функцию, которая допускает только цифры, пробел и клавиши со стрелками влево и вправо для ввода с типом number, потому что, когда я ее реализую, это также влияет на мои текстовые вводы.
<script>
function chars(evt){
var key = window.event ? event.keyCode : event.which;
if (event.keyCode == 8 || event.keyCode == 46
|| event.keyCode == 37 || event.keyCode == 39) {
return true;
}
else if ( key < 48 || key > 57 ) {
return false;
}
else return true;
}
</script>
Комментарии:
1. Как вы вызываете свою функцию?
2. таким образом, onkeypress=»(возвращает символы (событие))» . это работает, но влияет на все входные данные
3. Ваш параметр
evt
, но вы используетеevent
4. если я изменю это, повлияет ли это на входные данные только с типом number
5. @IkechukwuKalu если вы хотите, чтобы это влияло
input
только на элементы числового типа, почему вы используете его для всего, что не является числовым типом в первую очередь?
Ответ №1:
Назначьте идентификатор вашему <input>
. Добавьте к нему прослушиватель событий, например :
function getKeyCode() {
var key = window.event ? event.keyCode : event.which;
if(event.keyCode == 8 || event.keyCode == 46
|| event.keyCode == 37 || event.keyCode == 39) {
console.log(true);
//return true;
} else if (key < 48 || key > 57) {
console.log(false);
// return false;
} else {
console.log(true);
// return true;
}
}
var el = document.getElementById("myInput");
el.addEventListener("keypress", getKeyCode);
<input type="text" id="myInput">