2011-07-08 40 views
9

Bu, kromda fark ettiğim tuhaf bir şey. Eğer kullanıcı bir dosya seçip tekrar aynı dosyayı seçerse tekrar dosya iletişim kutusunu açıyorsa, firefox bunu yaparken chrome onchange olayını başlatmaz.giriş dosyası onchange olayı kromda işlenmiyor

kimse farketti mi?

cevap

3

Bu, Chrome'un bilinen bir özelliğidir ve hızlı bir şekilde Google on the topic bazı ilginç tartışmaları gündeme getirecektir.

Hiçbir şey değişti beri change olay soruyorsun tam olarak ne Sorunuza gelince

(aynı dosyayı seçtikten ediyoruz) ateş etmeyeceğini bana mantıklı? Bu davranışı değiştirmenin bir yolunu mu arıyorsunuz yoksa sadece bunu fark edip etmediğimizi bilmek ister misiniz?

Bu davranışa bir çözüm bulmak istiyorsanız, Javascript'inizde yeni bir dosya girişi oluşturabilir ve bir öncekini değiştirebilirsiniz. Bu şekilde, change etkinliğinizin yangına karşı garantilidir. Sonra

+4

aslında ben sadece boş bir dizeye giriş değeri ve kullanıcı yapacağım aynı dosyayı seçecektir eğer öyleyse o, sıfırlamak olayı al. Bu konuda beklemediğimi söylemeliyim ki, bu beklendiği gibi çalışıyor. Kullanıcının bir dosya seçtiğine dair bir bildirim almalıyım (aynı dosya olsa bile herhangi bir dosya), ancak bu yaklaşımda (progammer) bu eylemin gerçekleştiğini bilmiyorsunuz. – Amir

3
function resetFileInput($element) { 
    var clone = $element.clone(); 
    $element.replaceWith(clone); 
} 

Ve kullanın:

$('#element_id').on('change', function(){ 
... 
}); 

benim için iyi çalıştı!

0

benim için iyi çalışan bir girdi dosyasını sıfırlamak için daha kolay bir çözüm:

document.getElementById('idOfInput').value = ''; 
+0

Dosya girişinin “readonly” ile işaretli olduğundan IE'de (IE8-IE11 +) çalışmaz. Bir alternatif [bir formda sarın ve formu sıfırlayın] (http://stackoverflow.com/a/14587296/1030702). – Bob

İlgili konular