Quiero cambiar el texto predeterminado en el botón que es " Choose File
" cuando lo usamos input="file"
.
¿Cómo puedo hacer esto? Además, como puede ver en el botón de imagen, está en el lado izquierdo del texto. ¿Cómo puedo ponerlo en el lado derecho del texto?
html
file
input
default-value
Harry Joy
fuente
fuente
Respuestas:
Cada navegador tiene su propia versión del control y, como tal, no puede cambiar ni el texto ni la orientación del control.
Hay algunos "tipos de" hacks que quizás quieras probar si quieres un html/ /css solución en lugar de un Flash o luz plateadasolución.
http://www.quirksmode.org/dom/inputfile.html
http://www.shauninman.com/archive/2007/09/10/styling_file_inputs_with_css_and_the_dom
Personalmente, debido a que la mayoría de los usuarios se adhieren a su navegador de elección y, por lo tanto, probablemente están acostumbrados a ver el control en la versión predeterminada, probablemente se confundirían si vieran algo diferente (dependiendo de los tipos de usuarios con los que está tratando) .
fuente
Utilice el
A continuación se muestra el código para buscar el nombre del archivo cargado"for"
atributo delabel
parainput
.fuente
display:none
se puede usar en INPUT para que no use el espacio no necesario.Creo que esto es lo que quieres:
fuente
Esto podría ayudar a alguien en el futuro, puede diseñar la etiqueta para la entrada como desee y poner lo que quiera dentro de ella y ocultar la entrada sin mostrar ninguna.
Funciona perfectamente en cordova con iOS
fuente
No es posible. De lo contrario, es posible que deba utilizar Silverlight o el control de carga Flash.
fuente
Aquí cómo puedes hacerlo:
jQuery:
css
Código HTML:
fuente
Este sigue siendo el mejor hasta ahora.
fuente
Usando Bootstrap puedes hacer esto como el siguiente código.
fuente
Hice un script y lo publiqué en GitHub: get selectFile.js Fácil de usar, no dude en clonar.
HTML
JS
MANIFESTACIÓN
jsfiddle.net/Thielicious/4oxmsy49/
fuente
Actualización 2017:
He investigado cómo se puede lograr esto. Y la mejor explicación / tutorial está aquí: https://tympanus.net/codrops/2015/09/15/styling-customizing-file-inputs-smart-way/
Escribiré un resumen aquí en caso de que no esté disponible. Entonces deberías tener HTML:
Luego, oculte la entrada con CSS:
Luego peina la etiqueta:
Luego, opcionalmente, puede agregar JS para mostrar el nombre del archivo:
Pero realmente solo lea el tutorial y descargue la demostración, es realmente bueno.
fuente
Usaría a
button
para activar elinput
:Rápido y limpio.
fuente
Puede utilizar este enfoque, funciona incluso si se ingresan muchos archivos.
fuente
Esto debería funcionar:
fuente
Así es como se hace con bootstrap, solo debe colocar la entrada original en algún lugar ... idk en la cabeza y eliminar el <br> si lo tiene, porque de todos modos está oculto y ocupa espacio :)
fuente
Déjame agregar un truco que usé. Quería tener una sección que le permitiera arrastrar y soltar archivos, y quería que se pudiera hacer clic en esa sección de arrastrar y soltar junto con el botón de carga original.
Así es como se veía cuando terminé (menos la capacidad de arrastrar y soltar, hay muchos tutoriales sobre cómo hacerlo).
Y luego, en realidad, creé una serie de publicaciones de blog que tratan principalmente sobre los botones de carga de archivos.
fuente
Ok, así que es una forma muy simple de css puro de crear su archivo de entrada personalizado.
Use etiquetas, pero como sabe por las respuestas anteriores, la etiqueta no invoca la función onclick en firefox, puede ser un error pero no importa con lo siguiente.
Lo que haces es diseñar la etiqueta para que se vea como quieres
ahora simplemente oculta el botón de entrada real, pero no puedes configurarlo en
visability: hidden
Así que hazlo invisible configurando
opacity: 0;
ahora, como habrán notado, tengo la misma clase en mi etiqueta que en mi campo de entrada, eso es porque quiero que ambos tengan el mismo estilo, por lo tanto, cada vez que hace clic en la etiqueta, en realidad está haciendo clic en lo invisible campo de entrada.
fuente
Mi solución...
HTML:
Jquery:
Esto es simplemente malvado: D
fuente
fuente