Chcę zmienić domyślny tekst przycisku „ Choose File
”, gdy go używamy input="file"
.
W jaki sposób mogę to zrobić? Jak widać na obrazku, przycisk znajduje się po lewej stronie tekstu. Jak mogę umieścić go po prawej stronie tekstu?
html
file
input
default-value
Harry Joy
źródło
źródło
Odpowiedzi:
Każda przeglądarka ma własną wersję kontrolki i jako taka nie można zmienić tekstu ani orientacji kontrolki.
Istnieje kilka hacków, które możesz wypróbować, jeśli chcesz HTML/css rozwiązanie zamiast Flasha lub silverlightrozwiązanie.
http://www.quirksmode.org/dom/inputfile.html
http://www.shauninman.com/archive/2007/09/10/styling_file_inputs_with_css_and_the_dom
Osobiście, ponieważ większość użytkowników trzyma się wybranej przeglądarki i dlatego prawdopodobnie przyzwyczajeni są do kontrolki w domyślnej wersji, prawdopodobnie wpadliby w zamieszanie, gdyby zobaczyli coś innego (w zależności od typów użytkowników, z którymi masz do czynienia) .
źródło
Użyj
Poniżej znajduje się kod do pobrania nazwy przesłanego pliku"for"
atrybutulabel
dlainput
.źródło
display:none
może być używany na WEJŚCIU, aby nie zajmował niepotrzebnego miejsca.Myślę, że tego właśnie chcesz:
źródło
Może to pomóc komuś w przyszłości, możesz stylizować etykietę wejścia według własnego uznania i umieszczać w nim wszystko, co chcesz, i ukrywać dane wejściowe bez wyświetlania żadnych.
Działa idealnie na Cordova z iOS
źródło
To niemożliwe. W przeciwnym razie może być konieczne użycie kontroli przesyłania Silverlight lub Flash.
źródło
Oto jak możesz to zrobić:
jQuery:
css
Kod HTML:
źródło
To wciąż najlepsze jak dotąd
źródło
Za pomocą Bootstrap możesz zrobić to tak, jak poniżej kodu.
źródło
Zrobiłem skrypt i opublikowałem go na GitHub: get selectFile.js Łatwy w użyciu, możesz go sklonować.
HTML
JS
PRÓBNY
jsfiddle.net/Thielicious/4oxmsy49/
źródło
Aktualizacja 2017:
Przeprowadziłem badania, w jaki sposób można to osiągnąć. A najlepsze wyjaśnienie / samouczek znajduje się tutaj: https://tympanus.net/codrops/2015/09/15/styling-customizing-file-inputs-smart-way/
Napiszę tutaj streszczenie na wypadek, gdyby stało się niedostępne. Powinieneś mieć HTML:
Następnie ukryj dane wejściowe za pomocą CSS:
Następnie stylizuj etykietę:
Następnie opcjonalnie możesz dodać JS, aby wyświetlić nazwę pliku:
Ale tak naprawdę po prostu przeczytaj samouczek i pobierz wersję demonstracyjną, jest naprawdę dobra.
źródło
Użyłbym
button
do uruchomieniainput
:Szybko i czysto.
źródło
Możesz użyć tego podejścia, działa ono nawet, jeśli wprowadzonych jest wiele plików.
źródło
To powinno działać:
źródło
Oto jak to się robi z bootstrapem, tylko ty powinieneś gdzieś umieścić oryginalne wejście ... idk w głowie i usunąć <br>, jeśli go masz, ponieważ jest on tylko ukryty i zajmuje miejsce :)
źródło
Pozwól mi dodać hack, którego użyłem. Chciałem mieć sekcję, która pozwoli ci przeciągać i upuszczać pliki, i chciałem, aby ta sekcja przeciągania i upuszczania była klikalna wraz z oryginalnym przyciskiem przesyłania.
Oto jak to wyglądało, kiedy skończyłem (minus zdolność przeciągania i upuszczania, istnieje wiele samouczków, jak to zrobić).
A potem stworzyłem serię postów na blogu , które głównie dotyczą przycisków przesyłania plików.
źródło
Ok, bardzo prosty sposób tworzenia własnego pliku wejściowego.
Używaj etykiet, ale jak wiesz z poprzednich odpowiedzi, etykieta nie wywołuje funkcji onclick w firefoxie, może być błędem, ale nie ma znaczenia w następujących przypadkach.
To, co robisz, to stylizowanie etykiety, aby wyglądała tak, jak chcesz
teraz po prostu ukryj właściwy przycisk wprowadzania, ale nie możesz go ustawić na
visability: hidden
Ustaw się więc niewidocznie
opacity: 0;
teraz, jak pewnie zauważyłeś, mam tę samą klasę na mojej etykiecie, co moje pole wprowadzania, to znaczy dlatego, że chcę, aby oba miały tę samą stylizację, więc gdziekolwiek klikniesz etykietę, faktycznie klikniesz niewidzialną pole wejściowe.
źródło
Moje rozwiązanie ...
HTML:
Jquery:
To jest po prostu złe: D
źródło
źródło