Ich möchte den Standardtext für die Schaltfläche " Choose File
" ändern, wenn wir sie verwendeninput="file"
.
Wie kann ich das machen? Wie Sie im Bild sehen können, befindet sich die Schaltfläche auf der linken Seite des Textes. Wie kann ich es auf die rechte Seite des Textes setzen?
html
file
input
default-value
Harry Joy
quelle
quelle
Antworten:
Jeder Browser hat seine eigene Wiedergabe des Steuerelements. Daher können Sie weder den Text noch die Ausrichtung des Steuerelements ändern.
Es gibt einige "Arten von" Hacks, die Sie ausprobieren möchten, wenn Sie eine möchten html/.CSS Lösung eher als ein Flash oder SilverlightLösung.
http://www.quirksmode.org/dom/inputfile.html
http://www.shauninman.com/archive/2007/09/10/styling_file_inputs_with_css_and_the_dom
Da sich die meisten Benutzer an den Browser ihrer Wahl halten und daher wahrscheinlich daran gewöhnt sind, das Steuerelement in der Standardwiedergabe zu sehen, werden sie wahrscheinlich verwirrt, wenn sie etwas anderes sehen (abhängig von den Benutzertypen, mit denen Sie es zu tun haben). .
quelle
Verwenden Sie das
Unten finden Sie den Code zum Abrufen des Namens der hochgeladenen Datei"for"
Attribut vonlabel
fürinput
.quelle
display:none
kann auf INPUT verwendet werden, sodass nicht benötigter Speicherplatz nicht verwendet wird.Dies könnte in Zukunft jemandem helfen. Sie können die Beschriftung für die Eingabe nach Ihren Wünschen gestalten und alles, was Sie möchten, darin platzieren und die Eingabe mit der Anzeige none ausblenden.
Es funktioniert perfekt auf Cordova mit iOS
quelle
Ich denke, das ist was du willst:
quelle
Es ist nicht möglich. Andernfalls müssen Sie möglicherweise die Silverlight- oder Flash-Upload-Steuerung verwenden.
quelle
So geht's:
jQuery:
CSS
HTML Quelltext:
quelle
Dies ist immer noch das bisher beste
quelle
Mit Bootstrap können Sie dies wie folgt tun:
quelle
Ich habe ein Skript erstellt und es bei GitHub veröffentlicht: get selectFile.js Einfach zu verwenden, zögern Sie nicht zu klonen.
HTML
JS
DEMO
jsfiddle.net/Thielicious/4oxmsy49/
quelle
Update 2017:
Ich habe nachgeforscht, wie dies erreicht werden kann. Die beste Erklärung / das beste Tutorial finden Sie hier: https://tympanus.net/codrops/2015/09/15/styling-customizing-file-inputs-smart-way/
Ich werde hier eine Zusammenfassung schreiben, falls sie nicht mehr verfügbar ist. Sie sollten also HTML haben:
Dann verstecken Sie die Eingabe mit CSS:
Dann stylen Sie das Etikett:
Anschließend können Sie optional JS hinzufügen, um den Namen der Datei anzuzeigen:
Aber lesen Sie einfach das Tutorial und laden Sie die Demo herunter. Es ist wirklich gut.
quelle
Ich würde ein verwenden
button
, um Folgendes auszulöseninput
:Schnell und sauber.
quelle
Sie können diesen Ansatz verwenden, er funktioniert auch, wenn viele Dateien eingegeben werden.
quelle
Das sollte funktionieren:
quelle
Hier ist, wie es mit Bootstrap gemacht wird, nur du solltest die ursprüngliche Eingabe irgendwo platzieren ... idk im Kopf und das <br> löschen, wenn du es hast, weil es nur versteckt ist und trotzdem Platz beansprucht :)
quelle
Lassen Sie mich einen Hack hinzufügen, den ich verwendet habe. Ich wollte einen Abschnitt haben, in dem Sie Dateien ziehen und ablegen können, und ich wollte, dass dieser Drag & Drop-Abschnitt zusammen mit der ursprünglichen Upload-Schaltfläche anklickbar ist.
So sah es aus, als ich fertig war (abzüglich der Drag & Drop-Fähigkeit gibt es viele Tutorials dazu).
Und dann habe ich tatsächlich eine Reihe von Blog-Posts erstellt , in denen es hauptsächlich um Schaltflächen zum Hochladen von Dateien geht.
quelle
Ok, also sehr einfache reine CSS-Methode zum Erstellen Ihrer benutzerdefinierten Eingabedatei.
Verwenden Sie Beschriftungen, aber wie Sie aus früheren Antworten wissen, ruft die Beschriftung in Firefox keine Onclick-Funktion auf. Dies kann ein Fehler sein, spielt jedoch keine Rolle.
Sie gestalten das Etikett so, dass es so aussieht, wie Sie es möchten
Verstecken Sie jetzt einfach die eigentliche Eingabetaste, aber Sie können sie nicht auf einstellen
visability: hidden
Machen Sie es also unsichtbar, indem Sie es einstellen
opacity: 0;
Wie Sie vielleicht bemerkt haben, habe ich auf meinem Etikett dieselbe Klasse wie auf meinem Eingabefeld. Das liegt daran, dass beide das gleiche Design haben sollen. Wenn Sie also auf das Etikett klicken, klicken Sie tatsächlich auf das Unsichtbare Eingabefeld.
quelle
Meine Lösung...
HTML:
Jquery:
Das ist nur böse: D.
quelle
quelle