利用js实现用户注册检验 改进版(nm360浏览器不兼容)

//index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
 
  <body>
    <a href="register.html">用户注册</a><br>
  </body>
</html>

//register.html


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>用户注册</title>
<style type="text/css">
  @import "css/userRegister.css";
</style>
</head>
<body id="BODY" οnlοad="pageLoad()">
<div id="DIV_FORM">
<form method="post" action="registerSuccess.jsp" >
 <table id="TABLE" >
    <tbody>
        <tr>
           <td>用户名:</td>
           <td>
              <input name="username"  class="cls_inpt" type="text"  id="USERNAME" οnfοcus="showDesc(this)"
              οnblur="isNull(this);setBackground(this);"  οnkeyup="checkText(this,event)" οnclick="active(this)"/>
           </td>
        </tr>
        <tr>
           <td>密码:</td>
           <td>
             <input name="password" class="cls_inpt" id="PASSWORD" type="password" οnfοcus="showDesc(this)"
              οnblur="isNull(this);setBackground(this);"  οnkeyup="checkText(this,event)" οnclick="active(this)" maxlength="20"/>
           </td>
        </tr>
        <tr>
           <td>确认密码:</td>
           <td>
             <input name="password2" type="password" class="cls_inpt" id="PASSWORD2" οnfοcus="showDesc(this)"  disabled="disabled"
              οnblur="isNull(this);setBackground(this);"  οnkeyup="checkText(this,event)"  οnclick="active(this)" maxlength="20"/>
           </td>
        </tr>
        <tr>
           <td>身份证号:</td>
           <td>
             <input name="IDNumber" type="text" class="cls_inpt"id="IDNUMBER" οnfοcus="showDesc(this)"
              οnblur="isNull(this);setBackground(this);"  οnkeyup="checkText(this,event)" οnclick="active(this)" maxlength="19"/>
           </td>
        </tr>
        <tr>
           <td>电话号码:</td>
           <td>
             <input name="phoneNumber" type="text" class="cls_inpt" id="PHONENUMBER" οnfοcus="showDesc(this)"
              οnblur="isNull(this);setBackground(this);"  οnkeyup="checkText(this,event)" οnclick="active(this)" maxlength="20"/>
           </td>
        </tr>
        <tr>
           <td>Email:</td>
           <td>
               <input name="email"  class="cls_inpt" id="EMAIL" type="text" οnfοcus="showDesc(this)"  οnblur="isNull(this);setBackground(this)"
               οnkeyup="checkText(this,event)" οnclick="active(this)"/>
           </td>
        </tr>
        <tr>
           <td> </td>
           <td align="right">
             <input  id="SUBMIT" type="submit" value="确认提交"  disabled="disabled"   οnmοuseοver="lastCheck()"/>
           </td>
        </tr>
    </tbody>  
    </table>
   <table id="TABLE2" border="0">
       <tr><td><span id="username" active="0">请输入用户名</span></td></tr>
       <tr><td><span id="password" active="0">请输入密码</span></td></tr>
       <tr><td><span id="password2" active="0">请再次输入密码</span></td></tr>
       <tr><td><span id="IDNumber"  active="0">请输入身份证号码</span></td></tr>
       <tr><td><span id="phoneNumber" active="0">请输入电话号码</span></td></tr>
       <tr><td><span id="email" active="0">请输入邮箱地址</span></td></tr>
    </table>
</form>
</div>
<script  type="text/javascript"  src="jslib/registerCheck.js">
</script>
</body>
</html>

//registerCheck.js


// JavaScript Document
//
//在页面加载时初始化页面必要信息

function pageLoad()
{
    document.getElementById("USERNAME").value="";
    document.getElementById("PASSWORD").value="";
    document.getElementById("PASSWORD2").value="";
    document.getElementById("PASSWORD2").setAttribute("disabled","disabled");
    document.getElementById("IDNUMBER").value="";
    document.getElementById("PHONENUMBER").value="";
    document.getElementById("EMAIL").value="";
    
    document.getElementById("username").setAttribute("active", "0");
    document.getElementById("password").setAttribute("active", "0");
    document.getElementById("password2").setAttribute("active", "0");
    document.getElementById("IDNumber").setAttribute("active", "0");
    document.getElementById("phoneNumber").setAttribute("active", "0");
    document.getElementById("email").setAttribute("active", "0");
}

//输入框获得焦点时,显示提示内容

function showDesc(obj)
{  
   var id= obj.name;
   document.getElementById(id).style.display="inline";
}
//判断输入框内容是否为空
function isNull(obj)
{
   //获取输入内容
   var id= obj.name;
   var text=document.getElementById(id.toString().toUpperCase()).value;
   
   //判断是否为空
   if(text.replace(/\s/g, "")=="")
   {
     var id_span=document.getElementById(id);
     id_span.innerHTML="* 输入不能为空";
     id_span.style.color="#F00";
     id_span.setAttribute("active","0");
     return true;
   }

}
//输入时检验输入内容是否有效
function checkText(obj,e)
{
    //如果输入的是退格键,判断下内容是否为空
    if(8==e.which&&isNull(obj))
        {
          isSuccess();
          return;
        }
    //输入框的name属性名与span 标签id 名一致
    var id= obj.name;
     //组装方法
     //取首字母转换为大写,其余不变
     var firstChar=id.charAt(0).toString().toUpperCase();
     //
     var strsub=id.substring(1,id.length);
     var strMethod="check"+firstChar+strsub+"()";
     var isTrue = eval(strMethod);
     //判断输入数据是否有效
     if(isTrue)
     {
         var id_span=document.getElementById(id);
         id_span.innerHTML="输入有效";
         id_span.style.color="#060";
         id_span.setAttribute("active","1");
        
         //判断注册信息是否全部有效
         isSuccess();
        
     }
 
   
}

function checkUsername()
{
    //只简单的判断用户名的长度
    var id = document.getElementById("USERNAME");
    var username=id.value;    
    if(username.length > 10)
    {
      var id_span=document.getElementById(id.name);
      id_span.innerHTML = "*输入的用户名过长";
      id_span.style.color="#F00";
      
      id_span.setAttribute("active","0");
      return false;
    }
    else
    return true;
}
function checkPassword()
{
    var password = document.getElementById("PASSWORD").value;
    //当在password输入时,password2先清空
    document.getElementById("PASSWORD2").value="";
    document.getElementById("PASSWORD2").removeAttribute("disabled");
    return true;
}
function checkPassword2()
{
     var id=document.getElementById("PASSWORD");
     var id2=document.getElementById("PASSWORD2");
     var password = id.value;    
     var password2 = id2.value;
     if(password!=password2)
     {
        var id_span=document.getElementById(id2.name);
        id_span.innerHTML="* 密码不一致";
        id_span.style.color="#F00";
        
        id_span.setAttribute("active","0");
        return false;
     }
     return true;    
}
function checkIDNumber()
{
  var id=document.getElementById("IDNUMBER");
  var IDNumber =id.value;
  if(IDNumber.length<18||IDNumber.length>19)
  {
    var id_span=document.getElementById(id.name);
    id_span.innerHTML="* 身份证号长度有误";
    id_span.style.color="#F00";
    
    id_span.setAttribute("active","0");
    return false;
  }
  var expr=/([0]{18}[x|y]?)|([1]{18}[x|y]?)/i;
 
  //检验前18位是否有非数字字符
  var expr2=/\D/i;
 
 
  var subID=IDNumber.substring(0,IDNumber.length);
  //输入到第18位时检验是否存在非数字字符
  if(expr2.test(subID)&&IDNumber.length==18)
  {
     var id_span=document.getElementById(id.name);
     id_span.innerHTML="* 身份证号前18不可以为非数字字符";
     id_span.style.color="#F00";
     id_span.setAttribute("active","0");
     return false;
  }

  else
  {
      //如果存在19位检测第19位是否是x或y
     if(IDNumber.length==19)
     {
       if(IDNumber.charAt(IDNumber.length-1)!="x"&&IDNumber.charAt(IDNumber.length-1)!="y")
       {
           var id_span=document.getElementById(id.name);
           id_span.innerHTML="* 身份证号长度有误";
           id_span.style.color="#F00";
    
           id_span.setAttribute("active","0");
           return false;
       }
     }
  }
  //
  if(expr.test(IDNumber))
  {
     var id_span=document.getElementById(id.name);
     id_span.innerHTML="* 身份证号不可以全'0'或全'1'";
     id_span.style.color="#F00";
    
     id_span.setAttribute("active","0");
     return false;
  }
  return true;
}
function checkPhoneNumber()
{
// 利用正则表达式对输入数据匹配
   var id=document.getElementById("PHONENUMBER");
   var id_span=document.getElementById(id.name);
   var phone = id.value;
   if(phone.length>20)
   {
      id_span.innerHTML="* 电话号码太长";
      id_span.style.color="#F00";
      
      id_span.setAttribute("active","0");
      return false;
   }    
//匹配到一个非数字字符,则返回false
   var expr =  /\D/i;
   if(expr.test(phone))
   {
      id_span.innerHTML="* 不能输入非数字字符";
      id_span.style.color="#F00";
      
      id_span.setAttribute("active","0");
      return false;
   }
   return true;
   
}
function checkEmail()
{
// 利用正则表达式对输入数据匹配
   var id =  document.getElementById("EMAIL");
   var email = id.value;    
//以字母或数字开头,跟上@,字母数字以.com结尾
   var expr =  /^([0-9]|[a-z])+@([0-9]|[a-z])+(\.[c][o][m])$/i;
   if(!expr.test(email))
   {
      var id_span=document.getElementById(id.name);
      id_span.innerHTML="* 输入的邮箱格式有误";
      id_span.style.color="#F00";
      
      id_span.setAttribute("active","0");
      return false;
   }
   return true;
}

//点击输入框时激活该输入框
function active(obj)
{
  var id=document.getElementById(obj.id);
  id.style.backgroundColor="#FFF";
}

function lastCheck()
{
    //判断注册信息是否全部有效
         if(isSuccess())
         {
            document.getElementById("SUBMIT").removeAttribute("disabled");
         }
         else
         {
             document.getElementById("SUBMIT").setAttribute("disabled","disabled");
         }

}

//判断注册信息是否全部有效
function isSuccess()
{
   var username=document.getElementById("username").getAttribute("active");
   var password2=document.getElementById("password2").getAttribute("active");
   var IDNumber=document.getElementById("IDNumber").getAttribute("active");
   var phoneNumber=document.getElementById("phoneNumber").getAttribute("active");
   var email=document.getElementById("email").getAttribute("active");
   if(username==0|password2==0|IDNumber==0|phoneNumber==0|email==0)
   {
       //禁止注册
       document.getElementById("SUBMIT").setAttribute("disabled","disabled");
       return false;
   }
   else
       {
         //允许注册
            document.getElementById("SUBMIT").removeAttribute("disabled");
            return true;
       }
}

//当失去焦点时设置背景
function setBackground(obj)
{
   var id=obj.name;
   document.getElementById(id.toString().toUpperCase()).style.backgroundColor="#EEE";
}

//registerSuccess.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
      String username=request.getParameter("username");
      String password=request.getParameter("password");
      String IDNumber=request.getParameter("IDNumber");
      String phoneNumber=request.getParameter("phoneNumber");
      String email=request.getParameter("email");
 %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>registerSuccess</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
   <!--  
    <link rel="stylesheet" type="text/css" href="css/userRegister.css">
   -->
  </head>
 
  <body>
  registerSuccess!!!!!! <br>
   <table id="TABLE" >
    <tbody>
        <tr>
           <td>用户名:</td>
           <td>
                 <%=username %>
           </td>
        </tr>
        <tr>
           <td>密码:</td>
           <td>
               <%=password %>
           </td>
        </tr>
       
        <tr>
           <td>身份证号:</td>
           <td>
              <%= IDNumber%>
           </td>
        </tr>
        <tr>
           <td>电话号码:</td>
           <td>
              <%=phoneNumber %>
           </td>
        </tr>
        <tr>
           <td>Email:</td>
           <td>
               <%=email %>
           </td>
        </tr>
    </tbody>  
    </table>
    <br>
  </body>
</html>


//CSS


@charset "utf-8";
/* CSS Document */
#BODY{
    text-align:center;
}

#TABLE{
    text-align:right;
    margin: auto;
    float:left;
}
#DIV_FORM{
    margin-left:300px;
}
#TABLE2{
    text-align:left;
    width:290px;
    height:240px;
}
#TABLE2 tr
{
    
    height:24px;
}
#TABLE2 span{
    display:none;
}

.cls_inpt
{
   height:30px;
   width:200px;
   background-color: #EEE;
   border-style: groove;
}

#SUBMIT{
    height:50px;
    width:90px;
    font-family: "微软雅黑", "新宋体";
    font-size: 18px;
}


不是很完善,还存在一些问题没处理,360浏览器下发起访问时,js代码不起作用,出不来效果??火狐,谷歌,ie8试过都可正常运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值