Apakah ada peluang untuk mendeteksi setiap pemilihan file yang dibuat pengguna untuk elemen input
tipe HTML file
?
Ini telah ditanyakan berkali-kali sebelumnya, tetapi acara yang biasanya diusulkan onchange
tidak menyala jika pengguna memilih file yang sama lagi.
javascript
html
forms
dom-events
dronus
sumber
sumber
input
nilai ke '' setelah melakukan sesuatu dengan file tersebut. Tapi itu juga akan menghapus nama file yang terlihat. Namun, itu mungkin ok, karena file tersebut benar-benar diproses dan hasil dari tindakan itu dapat muncul di tempat lain.file
inputonchange
tidak mirip.Jawaban:
Tetapkan nilai
input
tonull
pada setiaponclick
acara. Ini akan mengatur ulanginput
nilai dan memicuonchange
acara bahkan jika jalur yang sama dipilih.Ini DEMO .
Catatan: Adalah normal jika file Anda diawali dengan 'C: \ fakepath \'. Itu fitur keamanan yang mencegah JavaScript untuk mengetahui jalur absolut file. Browser masih mengetahuinya secara internal.
sumber
this.value = null
di akhironchange
karena dimungkinkan untuk mengaktifkan elemen input tanpa mengkliknya (dengan menggunakan keyboard). Anda dapat menyimpaninput.files
jika perlu referensi nanti.this.value=null;
hanya diperlukan untuk Chrome, Firefox akan berfungsi dengan baik hanya denganreturn false;
Ini FIDDLE
sumber
Dalam artikel ini, di bawah judul "Menggunakan input formulir untuk memilih"
http://www.html5rocks.com/en/tutorials/file/dndfiles/
Itu menambahkan pendengar acara ke 'perubahan', tapi saya mengujinya dan memicu bahkan jika Anda memilih file yang sama dan tidak jika Anda membatalkan.
sumber
change
acara hanya akan memunculkan perubahan nama file.Gunakan acara onClick untuk menghapus nilai input target, setiap kali pengguna mengklik bidang. Ini memastikan bahwa acara onChange akan dipicu untuk file yang sama juga. Bekerja untuk saya :)
Menggunakan TypeScript
sumber
Lakukan apa pun yang ingin Anda lakukan setelah file berhasil dimuat. Tepat setelah penyelesaian pemrosesan file Anda, atur nilai kontrol file ke string kosong. Jadi .change () akan selalu dipanggil meskipun nama file berubah atau tidak. seperti misalnya Anda dapat melakukan hal ini dan bekerja untuk saya seperti pesona
sumber
sumber
Menghapus nilai indeks input 0 bekerja untuk saya . Silakan coba kode di bawah ini, semoga ini berhasil (AngularJs).
sumber