Нужна помощь в ограничении функции js (которая ограничивает недопустимые символы) определенным типом ввода

#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">