Saya memiliki elemen input file tersembunyi. Apakah mungkin untuk memicu kotak dialog pilih file dari acara klik tombol?
javascript
jquery
html
tamakisquare
sumber
sumber
click()
padadisplay:none
masukan dan bekerjaclick()
ada elemen dengandisplay: none
karya! ;) Bagaimana hal-hal berubah dalam empat tahun terakhir.hidden
atribut sebagai gantinyastyle="visibility:hidden"
:<input id="myInput" type="file" hidden>
( w3schools.com/tags/att_global_hidden.asp )Sebagian besar jawaban di sini kurang memiliki informasi yang berguna:
Ya, Anda dapat mengklik secara terprogram elemen input menggunakan jQuery / JavaScript, tetapi hanya jika Anda melakukannya di event handler milik event YANG DIMULAI OLEH PENGGUNA!
Jadi, misalnya, tidak akan terjadi apa-apa jika Anda, skrip, secara terprogram mengklik tombol di callback ajax, tetapi jika Anda meletakkan baris kode yang sama di penangan peristiwa yang dimunculkan oleh pengguna, itu akan berfungsi.
PS Kata
debugger;
kunci mengganggu jendela jelajah jika sebelum klik program ... setidaknya di chrome 33 ...sumber
$(staticElementParent).on("click", "dynamicChild", function(){})
debugger;
kata kunci tidak lagi mengganggu klik terprogramSekadar catatan, ada solusi alternatif yang tidak membutuhkan javascript. Ini sedikit hack, mengeksploitasi fakta bahwa mengklik label menetapkan fokus pada input terkait.
Anda membutuhkan
<label>
denganfor
atribut yang tepat (menunjuk ke input), dengan gaya optionnaly seperti tombol (dengan bootstrap, gunakanbtn btn-default
). Saat pengguna mengklik label, dialog terbuka, contoh:sumber
Saya tidak yakin bagaimana browser menangani klik pada
type="file"
elemen (masalah keamanan dan semuanya), tetapi ini seharusnya berfungsi:Saya telah menguji JSFiddle ini di Chrome, Firefox dan Opera dan semuanya menampilkan dialog jelajah file.
sumber
hover
peristiwa: jsfiddle.net/UQfaZ/1Saya membungkusnya dengan
input[type=file]
label tag, lalu mengatur gayalabel
sesuai keinginan Anda, dan menyembunyikaninput
.Solusi CSS Murni.
sumber
<input type="file" hidden>
untuk menghilangkan kebutuhan untuk menerapkan gaya CSS.Secara native, satu-satunya cara adalah dengan membuat
<input type="file">
elemen dan kemudian mensimulasikan klik, sayangnya.Ada plugin kecil (steker tidak tahu malu) yang akan menghilangkan rasa sakit karena harus melakukan ini sepanjang waktu: file-dialog
sumber
Solusi terbaik, berfungsi di semua browser .. bahkan di seluler.
Menyembunyikan jenis file input menyebabkan masalah dengan browser, opacity adalah solusi terbaik karena tidak bersembunyi, hanya tidak muncul. :)
sumber
visibility:hidden
harus menjadi pilihan yang lebih baik.visibility: hidden
masih mempengaruhi tata letak.display: none
adalah apa yang kamu inginkan.Tidak ada cara lintas browser untuk melakukannya, demi alasan keamanan. Apa yang biasanya dilakukan orang adalah melapisi file input di atas sesuatu yang lain dan mengatur visibilitasnya menjadi tersembunyi sehingga dipicu sendiri. Info selengkapnya di sini.
sumber
<input type="file">
, bukan<select>
.$.click()
.Pastikan Anda menggunakan binding untuk mendapatkan props komponen di REACT
sumber
Menggunakan jQuery Anda dapat memanggil
click()
untuk mensimulasikan klik.sumber
Ini berhasil untuk saya:
sumber
Bagi mereka yang menginginkan hal yang sama tetapi menggunakan React
sumber
sumber