2011-05-09 37 views
62

Bendosya üzerinde olayı nasıl

<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> 

O bir resim yüklemek için olduğu gibi bir form ettik seçin.

Burada görüntü yüklemek için butonuna tıklayın gerekiyor ve onClick etkinliği kullanmak ettik. Yükleme düğmesini kaldırmak istiyorum ve girişte dosya seçildiğinde, olayı başlatmak istiyorum. Bunu nasıl yaparım?? Sen girişi alanına onchange olay için abone olabilir

+0

seçilen cevap daha iyi bir çözüm http://stackoverflow.com/a/40581284/1520304 –

cevap

92

dosya girişi değişim olayı kullanın.

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

ve formu eşzamansız olarak gönderdiğinizde, sayfadan ayrılmayın, ardından aynı dosyayı tekrar yüklemeyi denediğinizde ne olur? Bu kod yıl sonra sadece yüzden buradayım –

+3

@ChristopherThomas' itirazı tam olarak bir değişiklik olayı yürütmek olmaz aynı dosyayı seçerek, bir kez ikinci kez çalıştırmak, ve neyse bunun altında bir çok-undervoted yanıtın çözer orada olacak Aynı dosyayı tekrar seçtiğimde http://stackoverflow.com/a/40581284/4526479 –

+0

değişiklik olayı tetiklenmiyor. Her seferinde çalışabilecek başka bir yol var mı? –

51

: o zaman

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

ve:

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

Bu kabul cevabım yorumlarda yukarıda @Christopher Thomas'ın endişelerini ele alacak yeni bir cevap gerekiyor eski bir sorudur. Sayfadan uzaklaşmak ve dosyayı ikinci kez seçmek için, dokunma hareketini tıkladığınızda veya yaptığınızda (mobil için) değeri silmeniz gerekir. Eğer sayfadan ayrılırsanız ve kullandığında aşağıda bile çalışacak jQuery:

sen sahip @applecrusher, iki kez aynı dosyayı seçtikten ilgili endişeleriniz varsa
//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

TEŞEKKÜRLER. CEVAP BU. Bu adam çivilenmiş. Obscure olay dinleyicisi ftw. UYGULAMALARIN KIRILMASI. –

+0

Bu çapraz tarayıcı uyumlu mu? Çoğu tarayıcıda çalışmayan "val ('')' işlevini kullanıyor gibi görünüyor. – SeanKendle

+0

Hangi tarayıcı üzerinde çalıştığınız üzerinde çalışmıyor? Nesneyi kendi başına klonlamaya çalışın, eğer hala sizin için bir sorunsa. – applecrusher

İlgili konular