2014-01-20 3 views
2

У меня есть <button> (не type="submit) и <input type="text"/> на той же странице.Кнопка включения IE при нажатии клавиши ввода

Они не находятся внутри формы, и кнопка находится на многих уровнях выше ввода иерархически.

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

Однако в IE10, когда нажата клавиша Enter, кнопка запускается, и ввод текста никогда не получает ключ. Chrome, Firefox и Opera (последние все 3) в порядке.

Я запустил красную кнопку, когда ее состояние :active активировано. Когда вы фокусируетесь на входе, кнопка не изменяется, однако после нажатия Enter она становится красной.

Установка tabindex="-1" на кнопку ничего не меняет.

В обходные я нашел являются:

  • Слушайте keydown на входе и preventDefault(). Кажется, keyup слишком поздно.
  • Поместите вход в виде контейнера

мне не нравится и, особенно второй. Есть ли что-нибудь еще, что я могу сделать?
Надеясь, что это то, с чем кто-то выступил.

EDIT: Вот рабочий пример: http://plnkr.co/edit/LhmTpk5TpWDjOJUD18Bm?p=preview

Спасибо.

+1

Какую версию IE вы проверили с этим? Является ли он согласованным во всех версиях? Можете ли вы предоставить рабочую демонстрацию (например, на jsFiddle, jsBin и т. Д.), Чтобы продемонстрировать ее? – Spudley

+0

IE10, я не могу сделать Fiddle прямо сейчас, но я буду, если никто раньше не столкнулся с этим. Я добавлю версию в теги. Благодарю. – Francisc

+0

http://stackoverflow.com/a/925387/1306811 :: IE, похоже, определяет активную кнопку как ту, которая определена сначала в источнике. Нет способа проверить это в настоящее время, но это довольно ответ, чтобы он мог помочь! – Gorbles

ответ

0

К сожалению, я думаю, что preventDefault() - ваш лучший выбор.

В более ранних версиях IE (, пожалуйста, не забудьте опубликовать версию, на которую вы тестируете!) печально известны несовместимостью (по иронии судьбы, благодаря невероятно строгой интерпретации схемы HTML).

EDIT: извините за «ответ», проклятый сайт не позволит мне прокомментировать, пока я не ударил 50 баллов.

+0

Я добавил версию, извините. И, к сожалению, это IE10 ... – Francisc

+2

У вас должно быть достаточно сейчас. :) – Francisc

Смежные вопросы