2014-06-16 2 views
2

나는 웹 응용 프로그램에 이미지 업로드 기능을 구축하고 다음과 같은 이벤트 핸들러 사용하고 있습니다 :jquery가 파일 입력 요소의 변경을 어떻게 감지합니까?

$('input:file').change(function(){ 
    //handle input change 
}); 

내가 두 번 같은 이미지를 업로드하려고하면하게하는 핸들러가 호출되지 것을 발견했다을 왜냐하면 기술적으로 입력이 변하지 않기 때문입니다. 그러나 나는 궁금해하고있다. 변화가 촉발되기 위해서는 무엇이 필요합니까? 에 관계없이 파일 이름의 파일 내용의

  • 변경
  • 이 파일 형식의 변경
  • 이 어떤가에 파일을 야기 파일 이름의

    • 변경 : 여기에 내가 무엇을 찾고의 몇 가지 예입니다 변경된 파일로 수신 할 수 있습니까? 아니면 다른 시나리오가 있습니까?

    +1

    파일 크기? 파일을 수정 한 날짜? 신장? – DevlshOne

    답변

    5

    Refer this Link.

    입력 유형 - 파일 :

    내용이 변경되었을 때 onchange를 이벤트가 시작됩니다. 사용자가 인터넷 탐색기에서 경로를 입력하면 (찾아보기 단추를 사용하지 않는 경우) 요소가 포커스를 잃을 때만 onchange 이벤트가 발생합니다 ( ). 따라서 onpropertychange 이벤트를 사용하여 Internet Explorer에서 수정을 감지하십시오.

    MSDN reference

    화재

    객체 또는 선택의 콘텐츠를 변경 한 경우.

    내 테스트 결과 : 변경 화재 : 파일 이름의

    1. 변경합니다.
    2. 콘텐츠 변경 : 파일 이름을 동일하게 유지하십시오. 변경 이벤트는 실행되지 않습니다.
    3. 파일 유형 변경 : 파일 이름을 동일하게 유지하고 화재를 변경하십시오.
    4. IE 9,1에서 입력 필드의 파일 이름을 변경하려고하면 변경 이벤트가 발생하고 파일 이름 필드가 지워집니다.

    그래서 이야기의 도덕은 내용이 변경되면 파일 이름이 변경된다는 의미입니다.

    +1

    감사합니다 @ shaunakde, 나는 그런 포괄적이고 테스트를 거친 답변을 너무 빨리 기대하지 않았다! –

    관련 문제