Creo lo hago todo bien (aunque es obvio que no, si no, no escribiría este post), pero no consigo que la siguiente función me valide el campo email. Meta lo que meta en el campo de texto me salta el alert.
Código HTML:
<form name="formulario" method="get"> <fieldset> <legend>Datos personales</legend> Nombre: <br /> <input type="text" name="name" /> <br /> Apellidos: <br /> <input type="text" name="apellidos" /> <br /> Dirección: <br /> <input type="text" name="direccion" /> <br /> Teléfono: <br /> <input type="text" name="telefono" /> <br /> E-mail: <br /> <input type="text" name="email" /> </fieldset> <fieldset> <legend>Datos de la compra</legend> Patatas: <input type="checkbox" name="patatas" /> (3€/Kg) <br /> ¿Cuantos kilos de patatas desea? <br /> <input type="text" name="kpatatas" /> <br /> Melones: <input type="checkbox" name="melones" /> (2€/Kg) <br /> ¿Cuantos kilos de melones desea? <br /> <input type="text" name="kmelones" /> <br /> Sandias: <input type="checkbox" name="sandias" /> (1€/Kg) <br /> ¿Cuantos kilos de sandias desea? <br /> <input type="text" name="ksandias" /> </fieldset> <input type="button" name="calcular" value="Calcular Total" /> <input type="button" name="comprar" value="Comprar" onclick="comprobar_personal()" /> </form>
Código:
Saludos y gracias de antemano. function comprobar_personal (){ var email = formulario.email.value; var telefono = formulario.telefono.value; var ok; ok = true; if (formulario.name.value==""){ alert ("Debe escribir su nombre"); formulario.name.focus(); ok=false; } else if (formulario.apellidos.value==""){ alert ("Debe escribir sus apellidos"); formulario.apellidos.focus(); ok=false; } else if (formulario.direccion.value==""){ alert ("Debe escribir su direccion postal"); formulario.direccion.focus(); ok=false; } else if ( !(/^\d{9}$/.test(telefono)) ){ alert ("Debe escribir un numero de telefono correcto"); formulario.telefono.focus(); ok=false; } else if ( !(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3,4})+$/.test(email)) ){ alert ("Debe escribir un correo electronico correcto"); formulario.email.focus(); ok=false; } }