Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/06/2008, 08:58
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 3 meses
Puntos: 45
Respuesta: Validación de campo de archivo en formulario

Hola pcadict0:

La forma correcta de validar un formulario es con el evento onsubmit, ya que en el formulario siempre tiene que haber un botón de tipo submit.


Un ejemplo que sí me ha funcionado:
Código PHP:
<html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>Documento sin t&iacute;tulo</title>
<
script language="javascript">
function 
comprueba_extension(farchivo) {
    
extensiones_permitidas = new Array(".gif"".jpg"".doc"".pdf");
    
mierror "";
    if (!
archivo) {
        
//Si no tengo archivo, es que no se ha seleccionado un archivo en el formulario
        
mierror "No has seleccionado ningún archivo";
    }else{
        
//recupero la extensión de este nombre de archivo
        
extension = (archivo.substring(archivo.lastIndexOf("."))).toLowerCase();
        
//alert (extension);
        //compruebo si la extensión está entre las permitidas
        
permitida false;
        for (var 
0extensiones_permitidas.lengthi++) {
            if (
extensiones_permitidas[i] == extension) {
                
permitida true;
                break;
            }
        }
        if (!
permitida) {
            
mierror "Comprueba la extensión de los archivos a subir. \nSólo se pueden subir archivos con extensiones: " extensiones_permitidas.join();
        }else{
            
//submito!
            
alert ("Todo correcto. Voy a submitir el formulario.");
            return 
true;
        }
    }
    
//si estoy aqui es que no se ha podido submitir
    
alert (mierror);
    return 
false;
}
</script>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data" name="formulario" onsubmit="return comprueba_extension(document.formulario, document.getElementById('archivo').value)">
Archivo:
<input name="archivo" type="file" id="archivo" size="150" maxlength="150">
<br>
<br>
<input type="submit" type="button" value="Subir!">
</form>
</body>
</html> 
Te recomiendo un poco de paciencia para estos mensajes que contienen un documento entero (11 horitas entre tus mensajes no es demasiado), los usuarios somos normalmente muy vagos para leer parrafadas y probar códigos, es más fácil preguntar dudas concretas. Para otra ocasión usa BBcode para tu código, y elimina el PHP porque en javascript no nos aporta nada, más bien molesta.



Saludos!
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.