jquery--登陆注冊【精简优化】

一、登陆页面:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title> Insert title here</title >
<link rel= "stylesheet" type ="text/css" href="../../style/css.css" />
<script type= "text/javascript" src="../../script/jquery-1.7.2.js" ></script>
<script type= "text/javascript" src="../../script/common.js" ></script>
<script type= "text/javascript">

     $(function(){
          
           //1.username
          $( ":text[name=userName]").focus(function (){
               //得到焦点时,推断当前文本框中的值,假设是默认值。则删除
               if(this .value == this.defaultValue) {
                    this.value = "" ;
              }
          }).blur( function(){
               //失去焦点时对文本内容进行验证
               //去前后空格
               var userNameStr = $.trim(this.value);
              
               //假设去掉前后空格后为空字符串。则恢复为默认值
               if(userNameStr == "" ) {
                   userNameStr = this.defaultValue;
              }
              
               //使用正則表達式进行验证
               showError(regObj.userNameReg.test(userNameStr), errorMsg.userNameFlag);
              
               //最后将去掉前后空格的值写回文本框
               this.value = userNameStr;
              
               //设置是否能提交的标识符
              submitFlag.userNameFlag = regObj.userNameReg.test(userNameStr);
              
          });
          
           //2.password
          $( ":password[name=pwd]").blur(function (){
              
               var pwdStr = $.trim(this.value);
              showError(regObj.pwdReg.test(pwdStr), errorMsg.pwdFlag);
              submitFlag.pwdFlag = regObj.pwdReg.test(pwdStr);
              
          });
          
           //3.确认password
          $( ":password[name=pwdAgain]").blur(function (){
              
               var pwdStr = $(":password[name=pwd]" ).val();
               var pwdAgainStr = $.trim(this.value);
              
              showError((pwdStr == pwdAgainStr), errorMsg.pwdAgainFlag);
              
              submitFlag.pwdAgainFlag = (pwdStr == pwdAgainStr);
              
          });
          
           //4.email
          $( ":text[name=email]").blur(function (){
              
               var emailStr = $.trim(this.value);
              
               if(emailStr == "" ) {
                   
                   showError( true, null );
                   submitFlag.emailFlag = true;
                   
              } else{
                   
                   showError(regObj.emailReg.test(emailStr), errorMsg.emailFlag);
                   submitFlag.emailFlag = regObj.emailReg.test(emailStr);
                   
              }
              
          });
          
          
           //5.提交button
          $( ":submit").click(function (){
              
               for ( var flag in submitFlag) {
                   
                    if(!submitFlag[flag]) {
                        
                        showError( false, errorMsg[flag]);
                        
                         //阻止表单提交
                         return false ;
                   }
                   
              }
              
          });
          
           //6.重置
          $( ":reset").click(function (){
              
               //设置提示消息为空
              showError( true, null );
              
               //设置提交标记对象为初始值
              submitFlag.reset();
              
          });
          
     });

</script>
</head>
<body>
     
     <form action="registSuccess.html" method= "post">
           <table id= "formTable">
               <tr>
                    <td colspan= "2" id ="msgTd"> &nbsp;</td >
               </tr>
               <tr>
                    <td> username:</td >
                    <td>< input class ="formInp" type= "text" name="userName" value="请输入username" /></ td>
               </tr>
               <tr>
                    <td> password:</td >
                    <td>< input class ="formInp" type="password" name="pwd" /></td>
               </tr>
               <tr>
                    <td> 确认password:</td >
                    <td>< input class ="formInp" type="password" name="pwdAgain" /></td>
               </tr>
               <tr>
                    <td> 邮箱:</td >
                    <td>< input class ="formInp" type= "text" name="email" /></td >
               </tr>
               <tr>
                    <td> 验证码:</td >
                    <td>
                         <input class= "inpType" id="codeInp" type="text" name= "code" />
                         <img id= "codeImg" src="../../images/Validate.jpg" />
                    </td>
               </tr>
               <tr>
                    <td colspan= "2" class ="centerTd">
                         <input class= "btn" type ="submit" id="submitBtn" value="注冊" />
                         <input class= "btn" type ="reset" id="resetBtn" value="重置" />
                    </td>
               </tr>
           </table>
     </form >

</body>
</html>


二、注冊页面

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title> Insert title here</title >
<link rel= "stylesheet" type ="text/css" href="../../style/css.css" />
<script type= "text/javascript" src="../../script/common.js" ></script>
<script type= "text/javascript" src="../../script/jquery-1.7.2.js" ></script>
<script type= "text/javascript">

     $(function(){
          
           //1.username
          $( ":text[name=userName]").focus(function (){
              
               if(this .value == this.defaultValue) {
                    this.value = "" ;
              }
              
          }).blur( function(){
              
               var userNameStr = $.trim(this.value);
               if(userNameStr == "" ) {
                   userNameStr = this.defaultValue;
              }
              
               showError(regObj.userNameReg.test(userNameStr), errorMsg.userNameFlag);
              
              submitFlag.userNameFlag = regObj.userNameReg.test(userNameStr);
              
               this.value = userNameStr;
              
          });
          
           //2.password
          $( ":password").blur(function (){
              
               var pwdStr = $.trim(this.value);
              
              showError(regObj.pwdReg.test(pwdStr), errorMsg.pwdFlag);
              
              submitFlag.pwdFlag = regObj.pwdReg.test(pwdStr);
              
          });
          
           //3.登录button
          $( ":submit").click(function (){
               //假设username不为真
               if(!submitFlag.userNameFlag){
                   showError( false, errorMsg.userNameFlag);
                    return false ;
              }
               //假设password不为真
               if(!submitFlag.pwdFlag) {
                   
                   showError( false, errorMsg.pwdFlag);
                    return false ;
                   
              }
              
          });
          
           //4.重置button
          $( ":reset").click(function (){
              
              showError( true, null );
              
              submitFlag.reset();
              
          });
          
     });

</script>
</head>
<body>
     
     <form action="loginSuccess.html" method= "post">
           <table id= "formTable">
               <tr>
                    <td colspan= "2" id ="msgTd"> &nbsp;</td >
               </tr>
               <tr>
                    <td> username:</td >
                    <td>< input class ="formInp" type= "text" name="userName" value="请输入username" /></ td>
               </tr>
               <tr>
                    <td> password:</td >
                    <td>< input class ="formInp" type="password" name="pwd" /></td>
               </tr>
               <tr>
                    <td colspan= "2">
                         <input type= "checkbox" name="rememberMe" value="rm" />记住我
                    </td>
               </tr>
               <tr>
                    <td colspan= "2" class ="centerTd">
                         <input class= "btn" type ="submit" id="submitBtn" value="登录" />
                         <input class= "btn" type ="reset" id="resetBtn" value="重置" />
                    </td>
               </tr>
           </table>
     </form >
     
     <div id="languageDiv"> 中文|English</div >

</body>
</html>


三、common.js

/**
 * 导入jQuery后,删除了myTrim()函数,同一时候将regObj对象中的spaceReg删除
 */

// 将所有的正則表達式封装为一个对象
var regObj = {
          
     userNameReg : /^[a-zA-Z_][a-zA-Z_-0-9]{5,9}$/,
     pwdReg : /^[a-zA-Z0-9]{6,12}$/,
     emailReg : /^[a-zA-Z0-9_.-]+@([a-zA-Z0-9-]+[.]{1})+[a-zA-Z]+$/

};

// 使用全局变量作为表单提交是否能放行的标记
var submitFlag = {
     userNameFlag : false,
     pwdFlag : false,
     pwdAgainFlag : false,
     emailFlag : true,// Email默认情况下同意提交
     reset : function() {
           this.userNameFlag = false;
           this.pwdFlag = false;
           this.pwdAgainFlag = false;
           this.emailFlag = true;
     },
     toString : function(){
           return this .userNameFlag + " " + this.pwdFlag + " " + this .pwdAgainFlag + " " + this.emailFlag;
     }
};

// 将错误消息封装到一个对象中
var errorMsg = {
     userNameFlag : "^_^username要求6-10位且由数字字母下划线-组成" ,
     pwdFlag : "^_^password要求6-12位大写和小写字母数字" ,
     pwdAgainFlag : "^_^确认password必须和password一致" ,
     emailFlag : "^_^Email格式不对"
};

function showError(flag, message) {
     if(flag) {
           //假设可以通过验证,则清除错误信息
           //使用text()函数不能正确识别&nbsp;。所以改用 html()函数
          $( "#msgTd").html("&nbsp;" );
     }else{
           //假设不能通过验证,则在#msgTd显示错误信息
          $( "#msgTd").html(message);
     }
}


原文地址:https://www.cnblogs.com/wgwyanfs/p/7039310.html