Foros del Web » Programando para Internet » Javascript »

Acceder al value de un campo file

Estas en el tema de Acceder al value de un campo file en el foro de Javascript en Foros del Web. Hola de nuevo: En un formulario he incluido un campo file, así: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original < input type = "file" id = ...
  #1 (permalink)  
Antiguo 03/09/2010, 18:38
Avatar de Alun  
Fecha de Ingreso: diciembre-2009
Ubicación: Liverpool
Mensajes: 140
Antigüedad: 12 años, 1 mes
Puntos: 4
Acceder al value de un campo file

Hola de nuevo:

En un formulario he incluido un campo file, así:

Código HTML:
Ver original
  1. <input type="file" id="portada_juego" name="portada">

Son más, pero pongo este como ejemplo. Luego, en el onSubmit, hago una llamada a una función,en la que paso un único parámetro, para el fragmento que se encarga de validar la extensión del archivo de este campo. El fragmento es este:

Código Javascript:
Ver original
  1. if(!f.getElementById('portada'+complet).value)
  2. {
  3.  if(!confirm('¿Vas a enviar la entrada sin portada?'))
  4.  {
  5.   return false;
  6.  }
  7. }
  8. else if(f.getElementById('portada'+complet).value)
  9. {
  10.  //Recupero la extensión del archivo
  11.  var archivo = f.getElementById('portada'+complet).value;
  12.  var ext=(archivo.substring(archivo.lastIndexOf("."))).toLowerCase();
  13.  //Defino las extensiones permitidas
  14.  var ext_perm = new Array('.jpg','.gif','.jpeg','.png');
  15.  //Defino una variable de control
  16.  var allow = false;
  17.  //Compruebo que la extensión introducida coincida con alguna de las permitidas
  18.  for(i = 0; i < ext_perm.length; i++)
  19.  {
  20.   if(ext_perm[i]==ext)
  21.   {
  22.    allow = true;
  23.    break;
  24.   }
  25.  }
  26.  if(allow==false)
  27.  {
  28.   alert('No has seleccionado un formato de imagen válido. Por favor, revisa la imagen que has seleccionado');
  29.  return false
  30.  }
  31. }

Ayer mismo, funcionaba bien, pero hoy ha dejado de acceder al valor, devolviéndome una cadena vacía, aunque haya seleccionado algún archivo.

¿Por qué de pronto ya no accede al valor del campo file?

Muchas gracias
  #2 (permalink)  
Antiguo 03/09/2010, 22:03
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 13 años
Puntos: 46
Respuesta: Acceder al value de un campo file

Hola.

f.getElementById('portada'+complet).value
que es f?

estas seguro de que complet tiene algun valor?

por que no haces?
document.getElementById('portada'+complet).value
  #3 (permalink)  
Antiguo 04/09/2010, 04:41
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 15 años
Puntos: 126
Respuesta: Acceder al value de un campo file

Hola

Si a la función solo le pasas un argumento, es imposible que funcione. Así a bote pronto, veo que has de pasarle como mínimo dos (f, complet) que vendrían a ser (this, loquesea)

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #4 (permalink)  
Antiguo 04/09/2010, 04:42
Avatar de Alun  
Fecha de Ingreso: diciembre-2009
Ubicación: Liverpool
Mensajes: 140
Antigüedad: 12 años, 1 mes
Puntos: 4
Respuesta: Acceder al value de un campo file

Hola, lair, gracias por la respuesta:

Al copiar el código, me lo he debido dejar atrás, pero f equivale a document, debería estar declarado arriba.

Código Javascript:
Ver original
  1. var f=document;

Por otra parte, la llamada a la función se realiza desde otra función (tengo que validar 4 formularios distintos, y este código se puede reutilizar, así que lo he sacado de cada función), de esta manera:

Código Javascript:
Ver original
  1. val_por('_peli');//además de '_peli', se le pasa '_disco', '_juego' y '_libro'

Disculpa que no haya puesto toda la información, ando un poco despistado estos días. De nuevo, gracias por tu respuesta.

Etiquetas: acceder, file, campos
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 14:15.