Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   keypress и повторяющийся код (https://javascript.ru/forum/jquery/58401-keypress-i-povtoryayushhijjsya-kod.html)

hhh 19.09.2015 21:10

keypress и повторяющийся код
 
Добрый день! Нужен одинаковый результат при двух событиях. Если вынести код внутри, в отдельную функцию, то при блюре ее вызвать можно.
$('input[type="text"].on('blur', myFunction);

Вопрос в том как вызвать при нажатии клавиши функцию, из-за условия внутри, такой способ выше не прокатывает.

$('input[type="text"].on('blur', function() {
  console.log('success');
});

$('input[type="text"].on('keypress', function() {
   if (keyCode == 13) {
    console.log('success');
   }
});

laimas 19.09.2015 21:34

Цитата:

Сообщение от hhh
Нужен одинаковый результат при двух событиях.

а зачем тогда условие?

$('input[type="text"]').on('keypress blur', function(e) {
    alert(e.type)
})

hhh 19.09.2015 21:41

Цитата:

Сообщение от laimas
а зачем тогда условие?

Чтобы происходило одинаковое событие при блюре или при нажатии на enter

laimas 19.09.2015 21:56

Значит вопрос коряво поставлен, получается что не по событиям, а при потере фокуса и нажатию только клавиши Enter. Проверяйте:

e.type == keypress должно быть нажатие именно Enter

hhh 19.09.2015 22:01

Спасибо, что подсказали. я получил новый опыт. Вышло так
$('input[typte=text].on('keypress blur', function (e) {
  if (e.keyCode === 13 || e.type === 'blur') {
    console.log('success')
  }
 });

рони 19.09.2015 22:01

hhh,
$('input[type="text"]').on('keypress blur', function(e) {
   if(e.type == 'blur' || e.which == 13)  myFunction()
})

или

http://javascript.ru/forum/misc/4559...tml#post302151

hhh 19.09.2015 22:16

рони, thx

laimas 19.09.2015 23:04

Цитата:

Сообщение от рони
event.which == 13 && $(this).trigger("blur")

Ошибка будет, да и не выгодно - обработчик blur нужно отдельно определять.

рони 19.09.2015 23:13

Цитата:

Сообщение от laimas
Ошибка будет

где?

laimas 19.09.2015 23:17

Цитата:

Сообщение от рони
где?

event не определена, да и скопировано прямо с ошибкой автора. :)


Часовой пояс GMT +3, время: 08:46.