Обработчик события keypress

Материал из JQuery

Перейти к: навигация, поиск
.keypress()

Устанавливает обработчик ввода символа с клавиатуры, либо, запускает это событие. Метод имеет три варианта использования:

.keypress(handler(eventObject)):jQuery1.0

Устанавливает функцию handler в качестве обработчика события keypress, на выбранные элементы.
Метод является аналогом bind("keypress", handler(eventObject)).

handler(eventObject) — функция, которая будет установлена в качестве обработчика. При вызове она будет получать объект события eventObject.

.keypress(eventData, handler(eventObject)):jQuery1.4.3

Метод отличается от предыдущего возможностью передавать в обработчик дополнительные данные.
Является аналогом bind("keypress", eventData, handler(eventObject)).

handler(eventObject) — см. выше.
eventData — дополнительные данные, передаваемые в обработчик. Они должны быть представлены объектом в формате: {fName1:value1, fName2:value2, ...}.

.keypress():jQuery1.0

Вызывает событие keypress, у выбранных элементов страницы. Метод является аналогом trigger("keypress").

Убрать установленный обработчик можно с помощью метода unbind().

Все три варианта использования метода, являются аналогами других методов (см. выше), поэтому все подробности использования keypress(), можно найти в описании этих методов.

Обработчик может быть установлен на любой элемент страницы, однако он получит уведомление о событии, только если этот элемент будет находиться в фокусе. Поскольку в различных браузерах список элементов, которые могут получать фокус, может отличаться, то надежнее всего будет привязать это событие к элементам формы. Если необходимо отслеживать ввод символов не в отдельном элементе, а на всей странице сразу, то можно привязать обработчик к объекту документа: $(document).keypress(handler).

Код введенного символа

Для того, чтобы узнать какой именно символ был введен с клавиатуры, можно посмотреть значение переменной eventObject.which, которая содержит код этого символа. Надо отметить, что метод keypress определяет именно введенный символ, а не нажатую клавишу, поэтому, при введении латинских "a" и "A" и кириллических "ф" и "Ф", переменная eventObject.which внутри обработчика события keypress будет содержать четыре разных значения, хотя все символы находятся на одной кнопке. Коды всех возможных символов вы можете посмотреть в специальной таблице.

Для того, чтобы узнать не вводимый символ, а нажатую клавишу нужно использовать методы keyup или keydown.

Пример

// установим обработчик события keypress, элементу с идентификатором foo
$('#foo').keypress(function(eventObject){
  alert('Вы ввели символ с клавиатуры. Его код равен ' + eventObject.which);
});
 
// вызовем событие keypress на элементе foo
$('#foo').keypress();
 
// установим еще один обработчик события keypress, на этот раз элементам 
// с классом block. В обработчик передадим дополнительные данные
$('.block').keypress({a:12, b:"abc"}, function(eventObject){
  var externalData = "a=" + eventObject.data.a + ", b=" + eventObject.data.b;
  alert('Вы ввели символ с клавиатуры. '+
        'В обработчик этого события переданы данные: ' + externalData);
});

Ссылки

Поисковые ключи:
  • обработчик события keypress
  • обработка события keypress
  • введение символа с клавиатуры
  • введен символ
  • .keypress()
  • keypress()