Перейти к содержимому

Сервис обмена электронных валют

Партнерская программа Kredov

  • Закрытая тема Тема закрыта

OnKeyPress, OnKeyDown

#1 gaaarfild

gaaarfild
  • Пользователь
  • 596 сообщений
  • Репутация: 0
0

Отправлено 01 Май 2010 - 01:30

При использовании AJAX в формах я привязываю запрос при нажатии элемента типа button. Но если нажать Enter, то происходит отправка Submit. Как можно перехватывать и нажатие Enter. Использую jQuery. И собственно вопрос темы. Чем отличаются onKeyPress и onKeyDown?

 

 

  • 0

#2 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 01 Май 2010 - 10:34

gaaarfild, Чтобы отловить отправку формы, тебе надо повесить событие именно на форму, при нажатии кнопки

keypress-событие отправляется элементом, когда браузер регистрирует ввод данных с клавиатуры. Это подобно keydown-событию, кроме ключевых повторений. Если пользователь зажмет кнопку, keydown-событие запускается единожды, а keypress-события запускаются для каждого вставленного символа. Кроме того, кнопки (как например Shift) модификатора вызывают keydown-события, но не keypress-события.

$('#[id_формы]').bind('keypress', function(e) {
   if(e.keyCode==13)
   {
	   // Здесь нам надо обрубить отправку формы.
   }
});

  • 0

#3 reaboom

reaboom
  • Пользователь
  • 40 сообщений
  • Репутация: 0

Отправлено 01 Май 2010 - 10:43

Лучше отлавливать submit формы... а не нажатие клавиши...
  • 0

#4 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 01 Май 2010 - 10:45

reaboom, тогда ты не сумеешь определить, каким образом была отправлена формы, по нажатию кнопки, или по нажатию Enter. Так что, всё равно придётся обрабатывать событие нажатия Enter.
  • 0

#5 reaboom

reaboom
  • Пользователь
  • 40 сообщений
  • Репутация: 0

Отправлено 01 Май 2010 - 10:50

тогда ты не сумеешь определить, каким образом была отправлена формы

Да... Но автору это вроде и не надо... Да я и не представляю особо, зачем это может понадобится при отправке формы... :rolleyes:
  • 0

#6 gaaarfild

gaaarfild
    Topic Starter
  • Пользователь
  • 596 сообщений
  • Репутация: 0

Отправлено 01 Май 2010 - 13:57

А я просто переименовал button в submit. Поле action формы оставил пустым. и добавил еще на submit - return false; Теперь работает так, как хотел.
  • 0

#7 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 02 Май 2010 - 14:12

gaaarfild, Вообщем тогда тему закрываю :rolleyes: Вопрос решился своими силами. А реализация самое то. Просто и без всяких заморочек.
  • 0


Оформление форума – IPBSkins.ru