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ítulo</title>
<script language="javascript">
function comprueba_extension(f, archivo) {
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 i = 0; i < extensiones_permitidas.length; i++) {
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!