0
function validateEmail(){

     var TCode = document.getElementById('email').value;


     if(TCode.length==0)
     {
         email_info.innerHTML="This field is required";
         return false;
     }
        email_info.innerHTML=" ";
        var atpos=TCode.indexOf("@");
        var dotpos=TCode.lastIndexOf(".");
        if (atpos<1 || dotpos<atpos+2 || dotpos+2>=TCode.length)
          {
             email_info.innerHTML="Not a valid e-mail address";
          return false;
          }
         email_info.innerHTML=" ";
            var xmlhttp;    

        if (window.XMLHttpRequest)
          {// code for IE7+, Firefox, Chrome, Opera, Safari
             xmlhttp=new XMLHttpRequest();
          }
        else
          {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
                xmlhttp.onreadystatechange=function()
          {
          if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                 document.getElementById("email_info").innerHTML=xmlhttp.responseText;

            }
          }

        xmlhttp.open("GET","get_email.jsp?email="+TCode,true);
        xmlhttp.send();


        return true;  

}

这是我的函数,它在文本字段上调用 ​​onblur 操作,该操作采用用户电子邮件 ID ...我想要做的是限制表单提交,如果电子邮件 ID 已存在于数据库中...我能够显示电子邮件 ID 已经存在但我无法限制用户提交表单的文本,即使它已经存在该怎么办?

4

1 回答 1

0

首先,您将变量设置为 false

window.isOkayToSubmit = false;

然后,如果在检查后电子邮件正常,则将该变量设置为 true:

if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
  document.getElementById("email_info").innerHTML=xmlhttp.responseText;
  window.isOkayToSubmit = true;
}

然后在表单上提交:

<form onsubmit="return isValidForm()" />

您只需返回该值:

function isValidForm(){
  return window.isOkayToSubmit;
}

另外,如果我理解您的代码,只要电子邮件错误,您就将其设置为 false,以防 somenoe 提供好的电子邮件,然后将其更改为坏的:

if (atpos<1 || dotpos<atpos+2 || dotpos+2>=TCode.length)
{
  email_info.innerHTML="Not a valid e-mail address";
  window.isOkayToSubmit = false;
  return false;
}
于 2013-05-23T13:26:19.503 回答