2011-08-24 4 views
6

여러분 중 일부는 이미 알고 있기 때문에 Internet Explorer의 onchange 이벤트는 버전 9 이전에 근본적으로 손상되었습니다. 변경 사항이 발생할 때 트리거하는 대신 입력 필드가 포커스를 잃고 변경 될 때 트리거합니다.파일 입력과 호환되는 해결 방법은 무엇입니까?

대신 확인란 및 라디오 버튼 ("onclick 사용")과 텍스트 필드 (" 사용"대신)에 대한 여러 가지 해결 방법이 있습니다.

그러나 파일 입력에 대한 문제가 있는데 사용자가 다른 곳을 클릭 할 때가 아니라 바로 다음에 새 파일이 선택되었음을 알리는 작업을 이해할 수 없습니다. . 마우스와 관련이 없으므로 마우스 이벤트에 자신을 첨부 할 수 없습니다. 키보드와 관련이 없기 때문에 키보드 이벤트에 자신을 붙일 수 없습니다.

문제를 해결할 수 있다면 IE 관련 자료를 기꺼이 사용할 수 있습니다.


추가 정보를 정기적으로는 :

내가 jQuery를 1.6 사용하고 live 방법은 이벤트를 첨부 할 수 있습니다.

$(".upload").live("change", function() { /* stuff here */ }); 
+0

여기에서이 문제에 대한 대화를 나누십시오. http://stackoverflow.com/questions/2389341/jquery-change-event-to-input-file-on-ie –

+0

http://jsfiddle.net/c8JuC/1/ 에뮬레이트 된 IE7에서 IE9에서 작동합니다. – pimvdb

+0

@pimvdb, 나는 on-the-fly 입력을 많이 생성하기 때문에'live'를 사용합니다. 이벤트는 적절한 순간에 발생하지 않습니다 (jquery 1.6). – zneak

답변

3

onFocus 이벤트를 사용하여 값이 있는지 확인하십시오. 이것은 사용자가 파일을 선택하고 OS 파일 선택 대화 상자가 제거 된 후에 입력 요소에 포커스가 반환되기 때문에 작동합니다.

+0

흥미 롭습니다. 나는 그것을 시도 할 것이다. – zneak

+1

이것은 물론 IE 전용 예외 코드입니다. Firefox에서는 전혀 작동하지 않습니다. –

관련 문제