Event.keycode на JavaScript

Я работаю с веб-страницей, содержащей форму с элементом textarea. Я хочу ограничить входные значения только числами, используя JavaScript. Один из методов, который я нашел, заключается в проверке значений клавиш, когда пользователи вводят данные:

function checkForEnter() {
if (!((event.keyCode >= 48) || (event.keyCode <= 57))) {                            
//event.stopPropagation(); throw error with IE ver 8
event.cancelBubble = true;
event.returnValue = false;
return false;

  }
}

Какой другой метод я мог бы использовать, чтобы ограничить введенные значения?

3 ответа

Решение

Спасибо за вашу помощь

это решение работает для меня

В inputext есть два события для одной и той же функции (checkForEnter), onkeypress и onkeydown.

В обоих случаях я проверяю ТОЛЬКО номера

нет больше бла, бла бла,

function checkForEnter() { 
if (event.keyCode == 13) {

var txt = event.srcElement;      

                    }
//that was my problem
//var chCode = ('charCode' in event) ? event.which : event.keyCode;

//that was my solution
var chCode = event.keyCode; 


                    if (chCode != 8 || chCode != 46) {

//alphanumeric keyboard
                        if (chCode >= 48) {
                            if (chCode <= 57) {
                            }
                            else {
//numeric keyboard
if (chCode > 95 && chCode < 106) {
                                } else {
                                    event.cancelBubble = true;
                                    event.returnValue = false;
                                    return false;
                                }
                            }
                        }
if (chCode == 32) {
   event.cancelBubble = true;
event.returnValue = false;
return false;
}        
}                                      
}

пс. Я не могу

Я не могу сделать несколько сравнений в JavaScript

: (

по этой причине используйте если.. если.. если

В вашей функции отсутствует event параметр, поэтому вызов методов неопределенной переменной естественным образом приводит к ошибке. Пытаться:

function checkForEnter(event) {
    ...
}

Ты хочешь event.preventDefault() не event.stopPropagation(), preventDefault останавливает поведение по умолчанию для события нажатия клавиши (т.е. добавление символа в текстовое поле).

Другие вопросы по тегам