Muchisimas gracias.
La solución era simple. No podía declara la variable que captura al FORM fuera de la función como global.
Código:
<script type="text/javascript">
var frm=document.getElementById("formula");
function validarForm() {
if(frm.nombre.value.length==0) { //comprueba que no esté vacío
frm.nombre.focus();
alert('Escribe tu nombre');
return false; //devolvemos el foco
}
}
</script>
Tenía que declararla dentro de la función como local, así:
Código:
<script type="text/javascript">
function validarForm() {
var frm=document.getElementById("formula");
if(frm.nombre.value.length==0) { //comprueba que no esté vacío
frm.nombre.focus();
alert('Escribe tu nombre');
return false; //devolvemos el foco
}
}
</script>
Incluso se puede capturar el formulario por su nombre a traves del objeto document sin tener que usar un atributo id:
Código:
<script type="text/javascript">
function validarForm() {
var frm=document.nombreForm
if(frm.nombre.value.length==0) { //comprueba que no esté vacío
frm.nombre.focus();
alert('Escribe tu nombre');
return false; //devolvemos el foco
}
}
</script>