Foros del Web » Programando para Internet » Javascript »

validar <input type=file>

Estas en el tema de validar <input type=file> en el foro de Javascript en Foros del Web. Hola, Alguien sabe como se valida si input type=file tiene algo seleccionado? es decir, quiero validar si el usuario seleccionó un fichero antes de proceder ...
  #1 (permalink)  
Antiguo 05/10/2006, 02:03
 
Fecha de Ingreso: noviembre-2005
Mensajes: 53
Antigüedad: 18 años, 5 meses
Puntos: 0
validar <input type=file>

Hola,
Alguien sabe como se valida si input type=file tiene algo seleccionado? es decir, quiero validar si el usuario seleccionó un fichero antes de proceder a realizar el envío del formulario...
muchas gracias
  #2 (permalink)  
Antiguo 05/10/2006, 03:35
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
Puedes obtener el value del campo al igual q se hace con otros campos. Comprueba pues q no esté vacío al menos.

Código HTML:
archivo=document.forms.nombre_form.nombre_campo_file.value;
Luego puedes coger y obtener la extensión y de esa manera validar el tipo de archivo q quieres q se suba o no... No sé si habrá métodos para obtener otros parámetros del archivo.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #3 (permalink)  
Antiguo 05/10/2006, 03:52
 
Fecha de Ingreso: noviembre-2005
Mensajes: 53
Antigüedad: 18 años, 5 meses
Puntos: 0
Hola,
ante todo, muchas gracias por responder, me temo que algo estoy haciendo mal. A continuación publico el código que tengo a ver donde puede estar el error por el cual no funciona.... Muchas gracias nuevamente y si no fuera mucho pedir... como puedo saber la extensión del fichero? Concretamente, quiero permitir .doc, .pdf, .rtf y .txt... Aquí va el código:

Código:
function validate(){
var fichero=document.forms.formulario.fichero
var cvtexto=document.getElementById("cvtexto")
var mensaje = "Por favor, debe completar correctamente:\n";
submitOK="true"

//valido fichero y/o cv texto:
if (fichero.value=="" || cvtexto.value=="" || cvtexto.value==null){
mensaje += " - CV\n";
submitOK = "false"
}

if (submitOK=="false"){
alert(mensaje);
return false
} 
}
  #4 (permalink)  
Antiguo 05/10/2006, 04:08
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
Lee esta FAQ.

Espero q te sirva de ayuda.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #5 (permalink)  
Antiguo 05/10/2006, 05:49
 
Fecha de Ingreso: noviembre-2005
Mensajes: 53
Antigüedad: 18 años, 5 meses
Puntos: 0
Hola,
Ya está solucionado (en parte mi problema)... solo me queda uno por resolver, que seguro es muy fácil, pero no logro dar con el código... tengo dos campos, uno que es un type=file en el cual se puede subir un .doc y otro que es un type=text en el cual se puede copiar y pegar texto... mi idea es que si subieron un fichero O copiaron y pegaron se valide el form... pero no logro esto... logro que los valide por separado, es decir que vea si adjunto fichero Y copio y pegó texto.... tienes idea como puedo hacer lo que quiero? Muchas más gracias!
  #6 (permalink)  
Antiguo 05/10/2006, 05:55
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
Cita:
if (fichero.value=="" || cvtexto.value=="" || cvtexto.value==null){
mensaje += " - CV\n";
submitOK = "false"
}
Con esto estás validando q vengan rellenos obligatoriamente. Debería ser mas bien:

Código HTML:
if (fichero.value=="" && (cvtexto.value=="" || cvtexto.value==null)){
mensaje += " - CV\n";
submitOK = "false"
}
De esta forma si uno de los 2 esta relleno la validacion es buena.

Saludos.

AÑADO: Deberías hacerles un trim (en algun post viene la funcion seguro) para asegurarte q no introducen espacios en blanco.
__________________
La muerte es un camino que todos debemos recorrer...
  #7 (permalink)  
Antiguo 05/10/2006, 08:16
 
Fecha de Ingreso: noviembre-2005
Mensajes: 53
Antigüedad: 18 años, 5 meses
Puntos: 0
Mil gracias! Me faltaban los parentesis....
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 15:35.