Как не дать пользователю ввести неправильное значение в текстовый инпут ?
Я хотел проверять при вводе значение, которое получается и не давать ввести символ, приводящий к невалидности значения.
Проблема в том, что в 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, время: 21:43. |