2014-01-20 3 views
2

<button> (type="submit 아님)과 <input type="text"/>이 같은 페이지에 있습니다.Enter 키의 IE 트리거 버튼

이들은 양식 안에 있지 않으며 단추는 입력 위에 계층 적으로 여러 수준이 있습니다.

텍스트 입력이 keyup 이벤트를 수신하고 버튼의 기능과 아무런 관련이없는 사용자 지정 작업을 수행합니다.

그러나 IE10에서는 Enter 키를 누르면 버튼이 트리거되고 텍스트 입력이 키를 가져 오지 않습니다. 크롬, 파이어 폭스, 오페라 (최신 3 개) 모두 정상입니다.

:active 상태가 트리거되면 버튼이 빨간색으로 변합니다. 입력에 집중하면 버튼은 변경되지 않지만 Enter를 누르면 빨간색으로 바뀝니다.

버튼에 tabindex="-1"을 설정해도 아무런 변화가 없습니다. 내가 찾은

해결 방법은 다음과 같습니다

  • 입력에 keydownpreventDefault()를 수신합니다.이 너무 늦은 것 같습니다.
  • 찾는 폼 컨테이너 I 모두 싫어

의 입력, 특히 초. 내가 할 수있는 일이 또 있니?
누군가가 나왔습니다.

편집 :

http://plnkr.co/edit/LhmTpk5TpWDjOJUD18Bm?p=preview 감사합니다 : 가 여기에 작동 예입니다.

+1

어떤 IE 버전을 테스트 해 보셨습니까? 모든 버전에서 일관성이 있습니까? JsFiddle, jsBin 등의 데모를 제공 할 수 있습니까? – Spudley

+0

IE10, 나는 지금 당장 피들을 만들 수 없지만, 전에 아무도 만나지 않으면 내가 할 것입니다. 태그에 버전을 추가하겠습니다. 감사. – Francisc

+0

http://stackoverflow.com/a/925387/1306811 :: IE는 소스에서 처음 정의 된 것과 같이 활성 버튼을 정의하는 것처럼 보입니다. 현재는 테스트 할 방법이 없지만 도움이 될 수있는 답변입니다. – Gorbles

답변

0

불행히도 preventDefault()가 최선의 방법이라고 생각합니다.

이전 버전의 IE (은 테스트중인 버전을 게시하십시오!)는 비 호환성 (HTML 스키마의 엄정하게 엄격한 해석을 통해 아이러니하게도)으로 유명합니다.

EDIT : "답변"에 대해 사과드립니다. 평판이 50이 될 때까지 댓글을 남기지 않습니다.

+0

버전을 추가했습니다. 죄송합니다. 그리고 슬프게도 IE10입니다 ... – Francisc

+2

이제 충분할 것입니다. :) – Francisc

관련 문제