Как не дать пользователю ввести неправильное значение в текстовый инпут ?
Я хотел проверять при вводе значение, которое получается и не давать ввести символ, приводящий к невалидности значения.
Проблема в том, что в keypress у меня ещё старое значение, а в keyup не срабатывает return false; Можно конечно в keypress запомнить старое значение, а в keyup его восстановить, если новое значение неправильное, но неужели нет более простого способа ? |
а зачем в keyup делать return false?
по keyup получаешь значение инпута, если там что-то лишнее (запрещенный символ), урезаешь значение на 1 символ и возвращаешь обратно инпуту, если ничего лишнего — ничего не делаешь :) |
Цитата:
|
|
$(".some_input").keypress(function(e) {
var keyCode_valid = [8, 9, 13, 37, 38, 39, 40, 46, 35];
var symbol = String.fromCharCode(e.which);
if ($(this).attr('type') == 'tel') {
var tel_valid = "0123456789- ()+";
// TODO визуальный сигнал
if (tel_valid.indexOf(symbol) == -1 && $.inArray(e.keyCode, keyCode_valid) == -1) {
return false
};
};
})
здесь keyCode_valid - коды символов клавиш, на которые можно наживать (стрелки, backspace, и т.п) symbol - символ нажатой клавиши. Вобщем в данном скрипте если нажмешь не на тот символ, то ничего не происходит |
| Часовой пояс GMT +3, время: 11:48. |