这是我写的一个注册信息的前台验证脚本,在IE下能正常调运该脚本。但是用火狐浏览时前台验证根本不起作用。
debug了一下 说form没有定义这是怎么回事??function IsDigit(cCheck)     
 {     
 return (('0'<=cCheck) && (cCheck<='9'));     
 }     
     
function IsAlpha(cCheck)     
 {     
 return ((('a'<=cCheck) && (cCheck<='z')) || (('A'<=cCheck) && (cCheck<='Z')))     
 }              
      
function IsaNull(cCheck)          
 {          
 return(cCheck != " ")         
 }                               
      
function checkdata()     

  username = form.username.value;     
 if (username == "")     
  {     
  alert("请输入注册名");     
  form.username.focus();     
  return false;     
  }     
     
 for (nIndex=0; nIndex<username.length; nIndex++)     
  {     
  cCheck = username.charAt(nIndex);     
  if (!(IsDigit(cCheck) || IsAlpha(cCheck) || cCheck=='-' || cCheck=='_' || cCheck=='.'))     
   {     
   alert("用户名只能使用字母、数字以及-、_和.,并且不能使用中文");     
   form.username.focus();     
   return false;     
   }     
  } 
    
   
 password = form.password.value;     
 if (password == "")     
  {     
  alert("请输入登陆密码");     
  form.password.focus();     
  return false;     
  } 
 password2 = form.password2.value;     
 if (password>password2)     
  {
     alert("重复密码与登陆密码不相同");     
  form.password.focus(); 
                                form.password2.focus();     
  return false;
  }  
if (password<password2)     
  {
     alert("重复密码与登陆密码不相同");     
  form.password.focus(); 
                                form.password2.focus();     
  return false;
  } 
 if (form.email.value == "")     
  {     
  alert("请输入您的E-MAIL地址");     
  form.email.focus();     
  return false;     
  }     
      
 email=form.email.value;      
 emailerr=0     
 for (i=0; i<email.length; i++)     
  {     
  if ((email.charAt(i) == "@") && (email.length > 5))     
   {     
     emailerr=emailerr+1     
   }     
  }     
 if (emailerr != 1)     
  {     
  alert("请输入正确的E-MAIL地址");     
  form.email.focus();     
  return false;     
  }           
  
 return true;     
     
}  

解决方案 »

  1.   

    你js中用的form最好给它设个id然后用
       var form = document.getElementById("yourform");取得dom对象
      

  2.   

    LZ最好用document.getElementById("id")这样取DOM元素
      

  3.   

    使用Form是要么用document.formName或者document.forms[index]
    要么就是定义ID然后document.getElementById('formId');
    使用第一种方法,在IE可以省略document,但是在Firefox不行。