2011-05-09 7 views
62

내가파일에 이벤트를 발생하는 방법을

<form onSubmit="return disableForm(this);" action="upload.php" method="post" name="f" id="wizecho" enctype="multipart/form-data"> 
    <input type="file" name="file" /> 
    <button onClick="return disableForm(this),ajaxUpload(this.form,'wizecho_upload.php', '&lt;br&gt;Uploading image please wait.....&lt;br&gt;'); return false;"> 
     Upload Image 
    </button> 
</form> 

그것은 이미지를 업로드하는 등의 양식을했습니다 선택합니다.

여기 이미지를 업로드하려면 버튼을 클릭해야하며 onClick 이벤트를 사용해야합니다. 업로드 버튼을 제거하고 싶을 때 입력에서 파일을 선택하자 마자 이벤트를 실행하고 싶습니다. 어떻게해야합니까 ?? 당신은 입력 필드의 onchange를 이벤트를 구독 할 수

+0

선택한 답변보다 더 나은 솔루션 http://stackoverflow.com/a/40581284/1520304 –

답변

92

는 파일 입력에 변경 이벤트를 사용합니다.

$("#file").change(function(){ 
     //submit the form here 
}); 
+24

비동기 적으로 양식을 제출하면 어떤 페이지로 이동하지 않고 동일한 파일을 다시 업로드하려고 시도합니까? 이 코드는 한 번만 실행됩니다. 두 번째로 동일한 파일을 선택하면 변경 이벤트가 실행되지 않습니다. –

+3

@ChristopherThomas의 이의 제기가 바로 제가 여기있는 이유이며, 다행히도 그 아래의 많은 답변이 있습니다. : http://stackoverflow.com/a/40581284/4526479 –

+0

동일한 파일을 다시 선택하면 변경 이벤트가 트리거되지 않습니다. 매번 작업 할 수있는 다른 방법은 없습니까? –

51

: 다음

<input type="file" id="file" name="file" /> 

과 :

document.getElementById('file').onchange = function() { 
    // fire the upload here 
}; 
23

위의 질문은 수락 대답의 의견에서 위의 크리스토퍼 토마스의 우려를 해결할 더 새로운 질문입니다. 페이지에서 다른 곳으로 이동 한 다음 두 번째 파일을 선택하려면 누르거나 터치 스타트 (모바일 용) 할 때 값을 지워야합니다. 이 페이지에서 멀리 이동하여 사용하는 경우 아래에서도 작동 JQuery와 :

당신이 가지고 @applecrusher, 동일한 파일을 두 번 선택에 대한 염려되는 경우
//the HTML 
<input type="file" id="file" name="file" /> 



//the JavaScript 

/*resets the value to address navigating away from the page 
and choosing to upload the same file */ 

$('#file').on('click touchstart' , function(){ 
    $(this).val(''); 
}); 


//Trigger now when you have selected any file 
$("#file").change(function(e) { 

} 
+0

감사합니다. 이것은 답변입니다. 이 녀석이 그것을 못 박았습니다. 불명확 한 이벤트 리스너 ftw. 이것에 부딪쳐서 적용하십시오. –

+0

이 크로스 브라우저는 호환 가능합니까? 대부분의 브라우저에서 작동하지 않는'val ('')'을 사용하는 것처럼 보입니다. – SeanKendle

+0

시도한 브라우저에서 작동하지 않는 브라우저는 무엇입니까? 그것이 당신에게 여전히 문제가된다면 그 자체로 객체를 복제 해보십시오. – applecrusher

관련 문제