Javascript me valida mal dirección de correo

Hola amigos cuando válido un formulario en DREAMweaver cs5 con javascript luego me tira error que no se aceptan campos vacíos, eso esta bien, pero me deja pasar el [email protected] y no me lo toma como invalido
¿Qué puede serf? ¿
Respuesta
1
Para intentar solucionar el problema, a ser posible que pusieras parte del código que hace esas comprobaciones, para poderte ayudar.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sin título 1</title>
<script type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers.document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
</script>
</head>
<body>
<form method="post">
<p>
      <input name="Text1" type="text" />
  </p>
<p>
      <label>
      <input name="Submit" type="submit" onclick="MM_validateForm('Text1','','RisEmail');return document.MM_returnValue" value="Enviar" />
      </label>
</p>
</form>
</body>
</html>
A la hora de la verificación que hace la función, simplemente te está comprobando que tenga @ y que tenga punto, ten en cuenta que los correos electrónicos necesitan como mínimo la arroba y que tenga un punto para el dominio, no puedes obviar que un dominio sea .co o .es, hay infinidades de dominios diferentes y no puedes comprobar todas las extensiones posibles.
La función es correcta a pesar de que pienses de que no va bien.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas