//简化取得ID
function $(idValue){
return document.getElementById(idValue);
}
//窗口打开后运行顺序
window.onload = function(){
$('regemail').focus();
var cname1,cname2,cpwd1,cpwd2,cemail1,cemail2;
//检验用户
$('regemail').onkeyup = function(){
email=$('regemail').value;
cemail2='';
if(email.match(/^[a-zA-Z]([a-zA-Z0-9]*[-_.]?[a-zA-Z0-9]+)+@([\w-]+\.)+[a-zA-Z]{2,}$/)==''){
//div之后使用,就是不符合要求的
}
else{
cemail1 = 'yes';
}
chkreg();
}
//密码验证
$('pwd1').onblur = function(){
pwd1=$('pwd1').value;
pwd2=$('pwd2').value;
if(pwd1==''){
//
cpwd1='';
}
else if((pwd1.length<6) && pwd1!=''){
//
cpwd1='';
}
else if((pwd1.match(/^[0-9]*$/)!=null)||(pwd1.match(/^[a-zA-Z]*$/)!=null)){
//
cpwd1='yes';
}
else{
//
cpwd1='yes';
}
if(pwd2!=''&&pwd1!=pwd2){
//
cpwd2='yes';
}
chkreg();
}
$('pwd2').onkeyup = function(){
pwd1=$('pwd1').value;
pwd2=$('pwd2').value;
if(pwd1==''||pwd2==''){
//
cpwd2='';
}
else if(pwd1!=pwd2){
//
cpwd2='';
}
else{
//
cpwd2='yes';
chkreg();
}
}
//
$('regname').onkeyup = function(){
name=$('regname').value;
cname2='';
if(name.match(/^[a-zA-Z_]/)==''){
//div之后使用
cname1='';
}
else if(name.length<=3){
//div之后使用
cname1='';
}
else{
//div之后使用
cname1='yes';
}
chkreg();
}
//ajax check the file
$('regname').onblur = Ajax("GET","chkname.asp?name="+$('regname').value,null,function(){
if(this.readyState==4){
    if(this.status==200){
var msg=null;
msg=this.responseText;
if(msg=='0'){
//right
cname2='yes';
 }
else if(msg=='1'){
//false
cname2='';
   }
else{
//msg
cname2='';
 }
                                     }
                         }                                  });$('regemail').onblur = Ajax("get","chkname.asp?email="+$('regemail').value,null,function(){
if(this.readyState==4){
    if(this.status==200){
msg=null;
msg=this.responseText;
if(msg=='0'){
//right
cemail2='yes';
 }
else if(msg=='1'){
//false
cemail2='';
   }
else{
//msg
cemail2='';
 }
                                     }
                         }                  });//正式注册
/*$('regbtn').onclick=function(){
//进度条gif
url='register_chk.asp?name='+$('regname').value+'&pwd='+$('pwd1').value;
url+='&email='+$('regemail').value+'&telephone='+$('telephone').value;
url+='&city='+$('city').value;
return false;
xmlhttp.open('get',url,true);
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4){
if(xmlhttp.status==200){
msg=xmlhttp.responseText;
if(msg=='1'){
//成功
}
else{
//false
}
}
}
}
xmlhttp.send(null);
}
*/
//注册解开按钮
function check(){
alert('cname1'+cname1);
alert('cname2'+cname2);
alert('cemail1'+cemail1);
alert('cemail2'+cemail2);
alert('cpwd1'+cpwd1);
alert('cpwd2'+cpwd2);
}
//注册解开按钮
function chkreg(){
if((cname1=='yes')&&(cpwd1=='yes')&&(cpwd2=='yes')&&(cemail1=='yes')){
$('regbtn').disabled=false;
}
else{
$('regbtn').disabled=true;
}
}}
' 测试用的注册页
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>注册|City</title>
<script type="text/javascript" src="../JS/register.js"></script>
<script type="text/javascript" src="../JS/smart.js"></script>
</head><body>
<form id="regform" name="regform" method="post" action="">
<table width="254" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="86"><div align="justify">EMAIL:</div></td>
    <td width="168"><div align="justify"><input type="text" name="regemail" id="regemail" onKeyUp="emailchk1()"></div></td>
  </tr>
  <tr>
    <td><div align="justify">用户名:</div></td>
    <td><div align="justify"><input name="regname" id="regname" type="text" onKeyUp="namechk1()"/></div></td>
  </tr>
  <tr>
    <td><div align="justify">密码:</div></td>
    <td><div align="justify"><input name="pwd1" id="pwd1" type="password" /></div></td>
  </tr>
  <tr>
    <td><div align="justify">确认密码:</div></td>
    <td><div align="justify"><input name="pwd2" id="pwd2" type="password" /></div></td>
  </tr>
  <tr>
    <td height="32"><div align="justify">所在城市:</div></td>
    <td><div align="justify"><select name="city" size="1"><option>广州</option></select></div></td>
  </tr>
  <tr>
    <td colspan="2"><div align="justify"><input name="book" type="checkbox" value="" />订阅信息</div></td>
  </tr>
  <tr>
    <td colspan="2"><div align="justify"><input value="register" type="Button" id="regbtn" disabled="true"/></div></td>
  </tr>
  <tr><td colspan="2"><div align="justify"><input value="check" type="Button" id="chkbtn" onClick="check()"/></div></td></tr>
</table>
</form>
</body>
</html>

解决方案 »

  1.   

    var cname1,cname2,cpwd1,cpwd2,cemail1,cemail2;
    这句定义为全局变量,放到window.onload之外试试看
      

  2.   

    放了之后还是cname1 和 cemail2都是undifend
      

  3.   

    反而到name2 和 email 2 undefined
      

  4.   

    当我声明全局的话,cname2 和 cemail2 就 ''空值
      

  5.   

    $('chkbtn').onclick=function()
    {
        alert('cname1'+cname1);
        alert('cname2'+cname2);
        alert('cemail1'+cemail1);
        alert('cemail2'+cemail2);
        alert('cpwd1'+cpwd1);
        alert('cpwd2'+cpwd2);
     }