Поймать ввод раньше, чем onChange и желательно только цифры - PullRequest
1 голос
/ 09 марта 2012

У меня есть таблица полей ввода.Форма будет использоваться неопытными пользователями, поэтому я хочу быть готовым к худшему.

Я создал некоторый код, который будет выделять строку таблицы, как только ее поле ввода будет изменено.Недостатком здесь является то, что код срабатывает после того, как пользователь нажал за пределами поля ввода.

Я хочу добиться следующего:

  • Как только пользователь введетчто-то, четное срабатывание, после каждой цифры , ввод / возврат и т. д. Это событие будет выделять строку таблицы.Позже я хочу расширить эту функцию, чтобы автоматически сохранять форму локально, но позже я выясню код для этого.
  • Во-вторых, это ценовая форма, поэтому было бы здорово, если бы пользователь мог введите только цифры

Браузеры, которые они будут использовать, имеют полную поддержку html5 и css3 , а в качестве движка JavaScript я использую новейшую версию jQuery.

PS.Если есть какие-либо недостатки в этом, пожалуйста, дайте мне знать.

Ответы [ 2 ]

5 голосов
/ 09 марта 2012

Используйте событие keyup, значение входа будет обновлено к моменту запуска этого события, но вы можете изменить значение до того, как пользователь blur s элемент.*

Вы можете ограничить ввод только числами, используя регулярное выражение:

//bind to the `keyup` event for all `input` element(s)
$('input').on('keyup', function () {

    //replace the value of this input by only the digits in it's value
    //note that this method works even if the user pastes a block of text into the input
    this.value = this.value.replace(/[^0-9]/gi, '');
});​

Вот демонстрация: http://jsfiddle.net/bKsTG/1/

2 голосов
/ 09 марта 2012

Используйте событие keyup и проверьте значение event.keyCode, чтобы убедиться, что это цифра, введите / backspace

$('selector').keyup(function(event){
   if (event.keyCode in [48,49, 50 .... 57,13]){ /* your code*/ };
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...