<script language="javascript"> 
<!-- 
var msg ; 
var bname_m=false; 
msg=new Array( 
"如没有邮箱使用手机号@ilife.cn注册", 
"邮箱地址。如没有用手机号@ilife.cn注册"

var xmlHttp = false; 
try { 
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); 
} catch (e) { 
try { 
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
} catch (e2) { 
xmlHttp = false; 


if (!xmlHttp && typeof XMLHttpRequest != 'undefined') { 
xmlHttp = new XMLHttpRequest(); 
} function on_input(objname){ 
var strtxt; 
var obj=document.getElementById(objname); 
obj.className="d_on"; 
//alert(objname); 
switch (objname){ 
case "d_email": 
strtxt=msg[4]; 
break; 

obj.innerHTML=strtxt; 
} function out_email(){ 
var obj=document.getElementById("d_email"); 
var str=document.getElementById("strUserEmail").value; 
var chk=true; 
if (str==''|| !str.match(/^[\w\.\-]+@([\w\-]+\.)+[a-z]{2,4}$/ig)){chk=false} 
if (chk){ 
obj.className="d_ok"; 
obj.innerHTML='电子邮箱地址格式输入正确。'; 
xmlHttp.open("POST", "/Common/PreCheck.asp", true); 
xmlHttp.setRequestHeader('Content-type','application/x-www-form-urlencoded'); 
xmlHttp.onreadystatechange = updatePagemail; 
xmlHttp.send("email="+escape(str)); 
}else{ 
obj.className="d_err"; 
obj.innerHTML=msg[4]; 

return chk; 
} function updatePagemail() { 
if (xmlHttp.readyState < 4) { 
d_email.innerHTML="检测中..."; 

if (xmlHttp.readyState == 4 && 200==xmlHttp.status) { 
var response = xmlHttp.responseText; 
if (response==1) 

d_email.className="d_ok"; 
d_email.innerHTML='恭喜Email可以使用。'; 

else{ 
d_email.className="d_err"; 
d_email.innerHTML="该Email已占用,请用其它Email注册"; 


} function chk_reg(){ 
if (!out_email()){return false;} 
document.getElementById('save_stat').innerHTML='<img src="/images/regok/loading.gif" align="absmiddle" />数据提交中……请稍候……' 
document.getElementById('regbotton').disabled='disabled'; 
} --> 
</script> 
<table align="center" cellpadding="0" cellspacing="0" width="775"> 
<form id="RegisterFm" name="RegisterFm" method="post" action="/Member/RegSuccessfully.asp" onSubmit="return chk_reg()">
<tr> 
<td align="left" width="20%"><span class="color_red">*</span>Email:</td> 
<td align="left" height="30" width="30%"><input name="strUserEmail" id="strUserEmail" size="30" onfocus="on_input('d_email')" onblur="out_email()" type="text"></td> 
<td colspan="2" class="yellow12" id="d_email" align="left" width="72%"></td> 
</tr> 
 
<tr> 
<td colspan="4" align="center" height="46"> 
<label> 
<input name="submit" value="OK!确认提交注册信息"  id="regbotton" type="submit"> 
</label><div id="save_stat"></div></td> 
</tr> 
</form> 
</table>
Email首先先检测格式是否正确,如果正确,再分别检查一下是否是否数据库里面已经存在,如果格式正确,并且不存在相关相同数据,则可以提交按钮注册,否则给出相应的提示信息!问题是 ,当输入错误格式的Email的时候,会给出相应提示并且不能注册,但是Email已经存在的时候,仍然可以注册成功!麻烦解决一下这个问题(正确的应该是:Email已经存在的时候,给出相应的提示信息!不能提交注册!)

解决方案 »

  1.   

    当email已经被注册的时候 操作一个全局变量 。
    根据这个变量再进行  下面的注册操作 。
    否则提示 ,程序暂停 。
      

  2.   


    <script language="javascript"> 
    <!-- 
    var msg ; 
    var bname_m=false; 
    var chk=true;   //  全局
    msg=new Array( 
    "如没有邮箱使用手机号@ilife.cn注册", 
    "邮箱地址。如没有用手机号@ilife.cn注册"
    ) //...  codefunction out_email(){ 
    var obj=document.getElementById("d_email"); 
    var str=document.getElementById("strUserEmail").value; 
    //var chk=true; 提出来放到最上面,定义成全局的    *************************//...  code
    } function updatePagemail() {  //... code if (response==1) 

    d_email.className="d_ok"; 
    d_email.innerHTML='恭喜Email可以使用。'; 

    else{ 
    d_email.className="d_err"; 
    d_email.innerHTML="该Email已占用,请用其它Email注册";
    chk=false;//这里判断一下*************************************


    } //... code
    --> 
    </script>
      

  3.   


    当email验证不符合规则的时候,就不让点注册
    当你鼠标移除email输入框的时候,你就检测格式和系统里面是否存在吧,如果不存在就不让点注册嘛。
    设定一个全局变量
    var vstatus;function  out_email (){
    if(不符合条件)
      vstatus=false;
    updatePagemail()验证是否存在的方法
    if(右键存在)
      vstatus=false;
    }
      

  4.   

    var response = xmlHttp.responseText; 
    if (response==1) 

    d_email.className="d_ok"; 
    d_email.innerHTML='恭喜Email可以使用。'; 

    else{ 
    d_email.className="d_err"; 
    d_email.innerHTML="该Email已占用,请用其它Email注册"; 

    检查下你后台的返回值是不是一直都等于1