2011-08-02 4 views
2

jQuery의 "변경"기능을 사용하여 HTML 입력 파일 필드의 "onChange"이벤트를 처리하고 있습니다. 이는 의도 한대로 작동하며 요소 값이 변경 될 때 실제로 트리거됩니다. 그러나 다음 시나리오에는 해당되지 않습니다.jQuery - 입력 필드 변경 이벤트가 예상대로 작동하지 않습니다.

  1. 사용자가 업로드 할 파일을 지정합니다. 이 파일을 "file.dat"라고합니다.

  2. jQuery는 나중에 val 기능을 사용하여 파일 필드 값을 ""로 설정합니다.

  3. 사용자는 업로드 할 파일 "file.dat"를 정확하게 지정합니다.

위의 시나리오에서 "onChange"는 3 단계에서 호출되지 않습니다. 그러나 3 단계의 사용자가 다른 파일을 지정하면 실제로 호출됩니다.

jQuery의 val 함수를 사용하여 값을 변경했기 때문입니까? 입력 파일 필드를 기본/기본값으로 재설정하려면 다른 대안이 있습니까?

답변

1

보안상의 이유로 JavaScript는 file 입력 값에 영향을 줄 수 없습니다. 값이 지워진 것처럼 보이지만 사실은 아닙니다.

전체 양식을 재설정하거나 요소를 다시 작성하여 이전 요소 대신 DOM에 삽입하여이 문제를 해결할 수 있습니다.

여기에 작동하는 것은 example입니다. change 이벤트를 바인드하기 위해 jQuery live 함수를 사용합니다. 이는 지우기 버튼을 클릭 할 때마다 DOM에 새 요소를 삽입하기 때문에 필요합니다.

0

.val() 대신 .reset()을 시도 했습니까?

관련 문제