Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.04.2012, 00:07
Новичок на форуме
Отправить личное сообщение для boraldo Посмотреть профиль Найти все сообщения от boraldo
 
Регистрация: 08.04.2012
Сообщений: 1

Как не дать пользователю ввести неправильное значение в текстовый инпут ?
Я хотел проверять при вводе значение, которое получается и не давать ввести символ, приводящий к невалидности значения.
Проблема в том, что в keypress у меня ещё старое значение, а в keyup не срабатывает return false;

Можно конечно в keypress запомнить старое значение, а в keyup его восстановить, если новое значение неправильное, но неужели нет более простого способа ?
Ответить с цитированием
  #2 (permalink)  
Старый 08.04.2012, 00:15
Аватар для T-sh
Профессор
Отправить личное сообщение для T-sh Посмотреть профиль Найти все сообщения от T-sh
 
Регистрация: 04.12.2009
Сообщений: 579

а зачем в keyup делать return false?

по keyup получаешь значение инпута, если там что-то лишнее (запрещенный символ), урезаешь значение на 1 символ и возвращаешь обратно инпуту, если ничего лишнего — ничего не делаешь
__________________
С моих слов записано верно.
Ответить с цитированием
  #3 (permalink)  
Старый 08.04.2012, 00:16
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от boraldo
в keypress у меня ещё старое значение
странно всегда думал что кипресс происходит уже после обновления инпута
Ответить с цитированием
  #4 (permalink)  
Старый 08.04.2012, 14:25
Аватар для w46823
Аспирант
Отправить личное сообщение для w46823 Посмотреть профиль Найти все сообщения от w46823
 
Регистрация: 28.03.2012
Сообщений: 36

http://learn.javascript.ru/play/tuto...m/percent.html
Ответить с цитированием
  #5 (permalink)  
Старый 12.04.2012, 15:43
Аватар для razerxxx
Аспирант
Отправить личное сообщение для razerxxx Посмотреть профиль Найти все сообщения от razerxxx
 
Регистрация: 05.10.2011
Сообщений: 85

$(".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 - символ нажатой клавиши. Вобщем в данном скрипте если нажмешь не на тот символ, то ничего не происходит
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как зафиксировать постоянно меняющееся значение Kaviton Элементы интерфейса 1 08.01.2012 17:27
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46
Значение переменной не может привысить 30 и опуститься ниже 1-го, как сделать? libinstyle Events/DOM/Window 3 12.07.2010 23:27
как передовать и парсить значение переменной по URL? FATALITY Общие вопросы Javascript 10 25.03.2010 19:32
Переменная от переменной или как к имени переменной конкатенировать значение другой Aderba jQuery 5 12.11.2008 15:25