Foros del Web » Creando para Internet » HTML »

Leyenda input file

Estas en el tema de Leyenda input file en el foro de HTML en Foros del Web. Buenas tardes, tengo un pequeño problemita con un input file , resulta que al declararlo me pone junto al botón la leyenda "No se ha ...
  #1 (permalink)  
Antiguo 10/07/2012, 18:48
 
Fecha de Ingreso: octubre-2006
Mensajes: 15
Antigüedad: 18 años, 1 mes
Puntos: 0
Sonrisa Leyenda input file

Buenas tardes, tengo un pequeño problemita con un input file, resulta que al declararlo me pone junto al botón la leyenda "No se ha seleccionado ningún archivo" y eso me desacomoda todo mi formulario. Habrá forma de quitarle esa leyenda? o en su defecto redireccionarla para que aparezca en un input text deshabilitado como mensaje de inicio?

De antemano gracias y saludos.
  #2 (permalink)  
Antiguo 10/07/2012, 23:00
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Leyenda input file

Podrías crear un campo input file personalizado

http://foros.emprear.com/html/file-input/

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 11/07/2012, 12:37
 
Fecha de Ingreso: octubre-2006
Mensajes: 15
Antigüedad: 18 años, 1 mes
Puntos: 0
Sonrisa Respuesta: Leyenda input file

Muchas gracias por tu ejemplo EMPREAR, ya chequé el código fuente de tu ejemplo y la verdad le entendí poco, no manejo al 100% hojas de estilo ni java script pero más o menos le agarre la onda. Trataré de analizar bien el ejemplo para encontrar lo que estaba buscando. Saludos.
  #4 (permalink)  
Antiguo 11/07/2012, 12:58
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Leyenda input file

Ok @mistico, analizala que no es tan complicada, te aclaro que la personalización se consigue con
Código Javascript:
Ver original
  1. window.onload =function personaliza(){
  2. // buscar la clase en los divs
  3. var personalizar = document.getElementsByTagName('div');
  4. for (var i = 0; i < personalizar.length; i++) {
  5. if (personalizar[i].className == 'clase_inputfile') {
  6. personalizar[i].className = 'clase_inputfile_js';
  7. }
  8. }
  9.  
  10. var cambia_input_files = document.getElementsByTagName('input');
  11. for (var i = 0; i < cambia_input_files.length; i++) {
  12. if (cambia_input_files[i].className == 'cambia_input_file') {
  13.  
  14. var cambiarclase = cambia_input_files[i].cloneNode(true);
  15. cambiarclase.className = 'cambia_input_file_js';
  16. cambiarclase.style.outline="none";
  17. cambiarclase.style.opacity = 0;
  18. cambiarclase.style.MozOpacity = 0;
  19. cambiarclase.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity:0)';
  20.  
  21. var padre = cambia_input_files[i].parentNode;
  22. padre.removeChild(cambia_input_files[i]);
  23. padre.appendChild(cambiarclase);
  24. }
  25. }
  26.  
  27. }

y las clases correspondientes al css, el resto cumple otros propósitos, validar extensiones, recuperar el nombre del archivo, etc

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 12/07/2012, 16:42
 
Fecha de Ingreso: octubre-2006
Mensajes: 15
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Leyenda input file

Listo EMPREAR!!! ya me quedó, ya pude esconder la leyenda que me estorbaba.
Me quedé pensando en otra cosa, tú validas el archivo de entrada cuando lo cargas. Cabría la posibilidad de que al dar click en el botón examinar (en tú caso en el clip) del input file, me enliste sólo los archivos que deseo subir, en mi caso sólo los txt.

De antemano gracias.
  #6 (permalink)  
Antiguo 12/07/2012, 16:48
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Leyenda input file

Primero te comento, la validación que sirve la hago por php.

Con respecto a lo otro, en html5 existe el atributo accept para los campos file, pero no funciona igual en todos los navegadores ( o simplemente no funciona)

http://www.w3schools.com/html5/att_input_accept.asp

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 12/07/2012, 17:00
 
Fecha de Ingreso: octubre-2006
Mensajes: 15
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Leyenda input file

No entendí, lo de los archivos txt dices que se hace con accept pero que no funciona en todos los navegadores, correcto? ya chequé la liga que me enviasté.

Con respecto a lo de la validación, dices que lo haces con php pero en el ejemplo anterior que me enviaste supongo la haces con javascript en la función nombre_ar, o me equivoco?

Muchas gracias, me fue de mucha ayuda el ejemplo anterior, incluso para entender las hojas de estilo.

Saludos.
  #8 (permalink)  
Antiguo 12/07/2012, 17:17
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Leyenda input file

Si, asi es, usá este link para verificar como se comporta en los diferentes browsers
http://www.w3schools.com/html5/tryit...5_input_accept


Para la validación efectivamente se usa
Código Javascript:
Ver original
  1. var nombre_archivo = (arr_ruta[arr_ruta.length-1]);
  2. var ext_validas = /\.(pdf|gif|jpg|png)$/i.test(nombre_archivo);

Pero hace falta lo anterior, para saber si es windows o no, ya que en windows las rutas ese separan por \ a diferencia de unix /
Seguro que en la web hay otras funciones similares, pero yo me hice esta que me funciona bien en todos los navegadores y no tengo que andar usando jQuery solo para esto

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 13/07/2012 a las 08:40 Razón: ortografia

Etiquetas: input
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:27.