Hola:
Acabo de probarlo en mi archiconocido probador:
Probador de scripts y funciona correctamente (al menos en FF)... posiblemente falle en alguna de las líneas que has omitido...
Copia ésto:
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>
http://www.caricatos.net/probador
</title>
<script type="text/javascript" >
function verifica(formulario){
alert("zzzz"); //Lo he puesto de prueba, epro no llega a sacalir
if(document.formulario.nombre.value == ""){
alert("Debe introducir nombre");
document.formulario.nombre.focus();
return 0;
}
}
</script>
</head>
<body>
<form name="formulario" action="enviar.php" target="popup" method="GET" onsubmit="return verifica(this)">
<input name="nombre" type="TEXT" size="40" onfocus="this.value=''">
...
<button name="enviar" value="enviar" type="submit" style="height: 25px; width: 100px">Enviar</button>
</form>
</body>
</html>
Y pégalo en el area de texto de la pestaña de edición del probador, y verás que funciona, aunque recuerda los consejos anteriores... y añado otro... cancela con return false, que aunque sea igual a return 0; es mejor costumbre.
Saludos