Bootstrap 4 Dosya Girişi
Bootstrap 4 dosya tarayıcısı ile uğraşıyorum. Eğer custom-file-control kullanırsam her zaman Choose file değerini göreceğim. https://v4-alpha.getbootstrap.com/components/forms/#file-browser
Dosya seçildikten sonra dosya seç değerini değiştirmek istiyorum. Bu değer aslında css ``.custom-file-control:lang(en)::after ``` içinde gizli ve javascript ile nasıl erişip değiştireceğimi bilmiyorum. Seçilen dosyanın değerini şu şekilde alabiliyorum:
document.getElementById("exampleInputFile").value.split("\\").pop();
değişmem gerekmiyor
.custom-file-control:lang(en)::after {
content: "Choose file...";
}
bir şekilde
Bağlantı: http://codepen.io/Matoo125/pen/LWobNp
50
3
Güncellenmiş 2018
Bootstrap 4.1+
Şimdi Bootstrap 4.1'de "Dosya seç..." yer tutucu metni
custom-file-label
içinde ayarlanmıştır:Gözat" düğme metnini değiştirmek için biraz ekstra CSS veya SASS gerekir. Ayrıca
lang=""
niteliğini kullanarak dil çevirisinin nasıl çalıştığına dikkat edin.https://www.codeply.com/go/gnVCj66Efp (CSS)
https://www.codeply.com/go/2Mo9OrokBQ (SASS)
Başka Bir Bootstrap 4.1 Seçeneği
Alternatif olarak bu [özel dosya giriş eklentisini] kullanabilirsiniz (https://github.com/Johann-S/bs-custom-file-input)
https://www.codeply.com/go/uGJOpHUd8L/file-input
Bootstrap 4 Alpha 6 (Orijinal Cevap)
Bence burada iki ayrı sorun var.
1 - İlk yer tutucu ve düğme metni nasıl değiştirilir
Bootstrap 4'te initial yer tutucu değeri
custom-file-control' üzerinde HTML diline dayalı bir CSS pseudo
::after' öğesi ile ayarlanır. İlk dosya düğmesi (aslında bir düğme değildir ancak düğme gibi görünür) bir CSS pseudo::before
öğesi ile ayarlanır. Bu değerler CSS ile geçersiz kılınabilir...**2 - Seçilen dosya adı değeri nasıl alınır ve değeri göstermek için giriş nasıl güncellenir?
Bir dosya seçildikten sonra, değer JavaScript/jQuery kullanılarak elde edilebilir.
Ancak, giriş için yer tutucu metin sözde bir öğe olduğundan, bunu Js/jQuery ile manipüle etmenin kolay bir yolu yoktur. Bununla birlikte, dosya seçildiğinde sözde içeriği gizleyen başka bir CSS sınıfına sahip olabilirsiniz...
Dosya seçildikten sonra
.custom-file-control
üzerindeki.selected
sınıfını değiştirmek için jQuery kullanın. Bu, ilk yer tutucu değerini gizleyecektir. Ardından dosya adı değerini.form-control-file
aralığına yerleştirin...Daha sonra dosya yükleme veya yeniden seçme işlemlerini gerektiği gibi gerçekleştirebilirsiniz.
Codeply üzerinde demo (alpha 6)
Bu şekilde çözdüm.
Html:
JS:
Not: Seçilen dosya adı çok uzunsa etiket içindeki taşmayı gizleyecek
.text-truncate
sınıfından bahsettiği için ajax333221'e teşekkürler.Dosya tarayıcısının dilini değiştirmek için:__ ZimSystem]1'in bahsettiğine alternatif olarak (CSS'yi geçersiz kılmak), bootstrap dokümanları tarafından daha zarif bir çözüm önerilmektedir: SCSS'ye dil ekleyerek özel bootstrap stillerinizi oluşturun Konuyu buradan okuyabilirsiniz: https://getbootstrap.com/docs/4.0/components/forms/#file-browser
Not: bunun çalışması için belgenizde lang niteliğinin düzgün bir şekilde ayarlanmış olması gerekir
Dosya seçiminde değeri güncellemek için:__ Bunu şu şekilde satır içi js ile yapabilirsiniz:
Not:
.split('\\').slice(-1)[0]
kısmıC:\fakepath\ önekini kaldırır