Событие ввода keydown - нажатие кнопки запуска другого элемента

Я надеюсь, что я пропустил что-то очевидное здесь...

Это происходит только в IE9 (поймите)

Я использую KnockoutJS (2.1 RC) и JQuery (1.7.2)

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

http://jsfiddle.net/HZymG/2/


person ericb    schedule 27.04.2012    source источник
comment
Это потому, что это, вероятно, кнопка отправки, и браузер (IE) установил для нее фокус по умолчанию. Когда вы нажимаете ввод, он ведет себя так, как будто вы нажали на кнопку. Посмотрите Stack Overflow, чтобы найти сообщения о предотвращении отправки с помощью клавиши ввода для множества различных решений.   -  person Cᴏʀʏ    schedule 28.04.2012


Ответы (1)


Добавьте type="button" к вашим <button> элементам. Если вы опустите это в IE, он будет рассматривать их как <button type="submit" /> элементов.

Обновил ваш jsFiddle, чтобы показать, что это проблема: http://jsfiddle.net/HZymG/3/

person Cᴏʀʏ    schedule 27.04.2012
comment
Да, у меня была аналогичная проблема во всех браузерах, где, если кнопка была сфокусирована и вы нажимали ввод, событие щелчка запускалось дважды (по крайней мере, при подключении с помощью нокаута. Добавление type=button к разметке работало как шарм. - person Marcel; 13.10.2015