no es la manera correcta de validar y enviar un formulario del lado del cliente. tal y como lo tienes, el envió del formulario está supeditado a que javascript esté activado. lo cual es una pésima idea. en lugar de usa un input button, usa un input submit. de tal modo que quedaría algo así
Cita: <form name="fvalida" method="post" action="enviar.php" onsubmit="return valida_envia(this)">
.......
<input type="submit" value="Enviar" />
por otro lado, la validación de los controles
Cita: function valida_envia(val){
//valido el nombre
if (val.nombre.value== ''){
alert("Tiene que escribir su nombre")
val.nombre.focus();
return 0;
}
//Apellidos
else if (val.apellidos.value== ''){
alert("Tiene que escribir sus apellidos")
val.apellidos.focus();
return 0;
}
.......
} else {
return true;
}
}