Нажмите кнопку запуска триггеров - PullRequest
147 голосов
/ 21 января 2011

У меня есть страница с двумя кнопками.Один является элементом <button>, а другой - <input type="submit">.Кнопки появляются на странице в таком порядке.Если я нахожусь в текстовом поле в любом месте формы и нажимаю <Enter>, событие элемента click элемента кнопки инициируется.Я предполагаю, что это потому, что элемент кнопки расположен первым.

Я не могу найти ничего похожего на надежный способ установки кнопки по умолчанию, и я не обязательно хочу это делать в данный момент.В отсутствие чего-либо лучшего я зафиксировал нажатие в любом месте формы и, если была нажата клавиша <Enter>, я просто отрицаю это:

$('form').keypress( function( e ) {
  var code = e.keyCode || e.which;

  if( code === 13 ) {
    e.preventDefault();
    return false; 
  }
})

НасколькоДо сих пор я могу сказать, что, кажется, он работает, но он невероятно крут.

Кто-нибудь знает более изощренную технику для этого?

Аналогично, есть ли подводные камни?к этому решению, о котором я просто не знаю?

Спасибо.

Ответы [ 11 ]

0 голосов
/ 22 января 2011

Я бы сделал это следующим образом: В обработчике события onclick кнопки (не отправить) проверьте код ключа объекта события. Если это «enter», я бы вернул false.

...