function checkdata() {
  var ssn=document.form.username.value.toLowerCase();
  if (!checkUserName(ssn)) return false;
  if (!checkPassword()) return false;
  if (!checkPassword1()) return false;
 }
 
  function checkPassword(){
  if( strlen(document.form.pwd.value)<6 || strlen(document.form.pwd.value)>16 ) {
   document.getElementById("pwdErr").innerHTML = "<font color='red'>正确地登录密码长度为6-16位,仅可用英文、数字、特殊字符!</font>";
   document.form.pwd.focus();
   return false;
  }
  
  
  if( strlen2(document.form.pwd.value) ) {
   document.getElementById("pwdErr").innerHTML = "<font color='red'>您的密码中包含了非法字符,仅可用英文、数字、特殊字符!</font>";
   document.form.pwd.focus();
   return false;
  }
  if( document.form.pwd.value == document.form.username.value ) {
   document.getElementById("pwdErr").innerHTML = "<font color='red'>用户名和密码不能相同!</font>";
   document.form.pwd.focus();
   return false;
  }
  document.getElementById("pwdErr").innerHTML = "";
 
  return true;
 }
 function checkPassword1(){
  if( document.form.pwd2.value =="" ) {
   document.getElementById("pwdErr1").innerHTML = "<font color='red'>请输入密码确认!</font>";
   document.form.pwd2.focus();
   return false;
  }
  if( document.form.pwd2.value != document.form.pwd.value ) {
   document.getElementById("pwdErr1").innerHTML = "<font color='red'>两次密码输入不一致!</font>";
   document.form.pwd.focus();
   return false;
  }
  document.getElementById("pwdErr1").innerHTML = "";
 
  return true;
  
 }function checkUserName(ssn){
 if( ssn.length<3 || ssn.length>18 ) {
  document.getElementById("usernameErr").innerHTML = "<font color='red'>请输入正确的工号,工号长度为3-18位!</font>";
  document.form.username.focus();
  return false;
 }
 if (isWhiteWpace(ssn)){
  document.getElementById("usernameErr").innerHTML = "<font color='red'>请输入正确的工号,用户名中不能包含空格!</font>";
  document.form.username.focus();
  return false;
 }
 if (!isSsnString(ssn)){
  document.getElementById("usernameErr").innerHTML = "<font color='red'>      您选择的用户名不正确或已被占用!工号由字母、数字和下划线组成</font>";
  document.form.username.focus();
  return false;
 }
 
 document.getElementById("usernameErr").innerHTML = "";
 
 return true;
}function strlen(str){
 var len;
 var i;
 len = 0;
 for (i=0;i<str.length;i++){
  if (str.charCodeAt(i)>255) len+=2; else len++;
 }
 return len;
}function strlen2(str){
 var len;
 var i;
 len = 0;
 for (i=0;i<str.length;i++){
  if (str.charCodeAt(i)>255) return true;
 }
 return false;
}function isWhiteWpace (s)
{
 var whitespace = " \t\n\r";
 var i;
 for (i = 0; i < s.length; i++){   
  var c = s.charAt(i);
  if (whitespace.indexOf(c) >= 0) {
     return true;
  }
 }
 return false;
}function isSsnString (ssn)
{
 var re=/^[A-Za-z0-9_]+$/;
 if(re.test(ssn))
  return true;
 else
  return false;

解决方案 »

  1.   

    看看你的form是怎么写的,JS貌似没问题
      

  2.   

    - -#JS你看得出没问题?他在响应的事件都没写出来............form里表单控件响应事件肯定都写上 onblur  .然后跳出另外一个表单控件的时候,首先获得焦点的控件onblur响应,验证没有输入正确强行把焦点切回,而此同时刚获得焦点的控件此时onblur响应,验证没有输入正确强行把焦点切回,这样就形成死循环.............