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
останавливает поведение по умолчанию для события нажатия клавиши (т.е. добавление символа в текстовое поле).