JavaScript、CSS、JSP 實現用戶注冊頁面與信息校驗


參考:http://blog.csdn.net/fightfaith/article/details/50277337

需求:實現用戶注冊頁面並作出邏輯校驗。要求:

(1)完成注冊頁面樣式如下:

(2)頁面提交,用戶注冊信息不符合規范,要顯示紅色提示框,如下:

 

分析:JSP實現頁面元素,CSS做頁面美化,JavaScript 實現邏輯校驗;用戶注冊規則采用正則表達式。

<%@ 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>注冊頁面</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 type="text/css" rel="stylesheet" href="register.css">
        <script type="text/javascript" src="register.js"></script>
    </head>

    <body>
        <form action="UserServlet?method=register" method="post"
            onsubmit="return validateForm()">
            <table border="26" align="center" width="50%">
                <caption>
                    用戶注冊
                </caption>
                <tr>
                    <td align="right">
                        <sup>
                            <font color="red">*</font>
                        </sup>
                        用戶名:
                    </td>
                    <td>
                        <input type="text" name="username" id="username"
                            class="input_class" onblur="checkusername(this)" />
                        <span id="username_span">用戶名由3-5個字符組成</span>
                    </td>
                </tr>

                <tr>
                    <td align="right">
                        <sup>
                            <font color="red">*</font>
                        </sup>
                        密碼:
                    </td>
                    <td>
                        <input type="password" name="password1" id="password1"
                            class="input_class" onblur="checkpassword1(this)" />
                        <span id="password1_span">請輸入8-12位密碼</span>
                    </td>
                </tr>

                <tr>
                    <td align="right">
                        <sup>
                            <font color="red">*</font>
                        </sup>
                        確認密碼:
                    </td>
                    <td>
                        <input type="password" name="password2" id="password2"
                            class="input_class" onblur="checkpassword2(this)" />
                        <span id="password2_span">兩次密碼不一致</span>
                    </td>
                </tr>

                <tr>
                    <td align="right">
                        <sup>
                            <font color="red">*</font>
                        </sup>
                        Email:
                    </td>
                    <td>
                        <input type="text" name="email" id="email" class="input_class"
                            onblur="checkemail(this)" />
                        <span id="email_span">格式示例:xxxxxxxx@163.com</span>
                    </td>
                </tr>

                <tr>
                    <td align="center" colspan="2">
                        <!-- 合並兩列 -->
                        <input type="submit" class="aaa" value="注冊" />
                        <input type="reset" class="aaa" value="重置" />
                    </td>
                </tr>
            </table>
        </form>
    </body>
</html>

2、CSS進行頁面美化。

在本文 CSS 代碼中主要根據類選擇器、標簽選擇器來設置相應的標簽樣式:

<span style="font-size:14px;">  
.input_class {   
    width:250px;  
    height:16px;      
}  
  
caption{        
    font-size:30px;  
    color:red;  
    text-shadow: yellow 6px 0px 5px;   
    font-stretch: wider;  
    font-weight: 900;   
}  
  
.aaa{          
    font-size:16px;  
    font-weight: bold;  
}  
  
</span>  

3、JavaScript 進行邏輯校驗。

  在JavaScript 代碼中需要用到正則表達式來簡化驗證:

        //用戶名:  
        var  usernameRegex = /^\w{3,15}$/;  
        //密碼:  
        var passwordRegex = /^\w{6,12}$/;  
        //郵箱:  
        var emailRegex = /^\w+@\w+(\.\w+)+$/;  
       
          
        //alert("222");  
        function validateForm(){ //定義validateForm方法用於客戶端校驗  
            var flag = true;  
            //校驗用戶名  
            var usernameNode = byId("username"); //獲得ID值為username的節點對象  
            var username = usernameNode.value;   //獲得usernameNode節點的值,即用戶在username文本框內填寫的值  
            if(!usernameRegex.test(username)){    //驗證獲得到的值是否符合正則表達式  
                byId("username_span").style.color = "red"; //如果不符合,則將ID值為username_span的節點對象內容變為紅色  
                flag = false;        //返回false,不提交  
            }  
              
            //校驗密碼  
            var passwordNode = byId("password1");  //獲得ID值為password的節點對象  
            var password = passwordNode.value;  
            if(!passwordRegex.test(password)){  
                byId("password1_span").style.color = "red";  
                flag = false;  
            }  
              
            //確認密碼  
            var rePasswordNode = byId("password2");  //獲得ID值為rePassword的節點對象  
            var rePassword = rePasswordNode.value;  
            if(!password==rePassword){  
                byId("password2_span").style.color = "red";  
                flag = false;  
            }else if(!passwordRegex.test(rePassword)){  
                byId("password2_span").style.color = "red";  
                flag = false;  
            }else{  
                byId("password2_span").style.color = "green";  
            }  
              
            //校驗郵箱  
            var emailNode = byId("email");  //獲得ID值為Email的節點對象  
            var email = emailNode.value;  
            if(!emailRegex.test(email)){  
                byId("email_span").style.color = "red";  
                flag = false;  
            }  
            return flag;  
                        }  
  
            
        
              
        function byId(id){  //自定義方法,用於獲取傳遞過來的ID值對應的節點對象  
            return document.getElementById(id);  
        }  
              
        function checkUsername(node){ //當鼠標離開節點時調用此方法,驗證節點內容是否符合注冊規范  
            //校驗用戶名  
            var username = node.value;  //得到傳遞過來的節點對象的值  
            if(!usernameRegex.test(username)){  //驗證是否符合節點對應的正則表達式  
                byId("username_span").style.color = "red"; //不符合,相應內容變成紅色  
            }else{  
                byId("username_span").style.color = "green";  //符合,相應內容變成綠色  
            }  
        }  
          
        function checkPassword(node){  //當鼠標離開節點時調用此方法,驗證節點內容是否符合注冊規范  
            //校驗密碼  
            var password1 = node.value;  
            //alert("111");  
            if (!passwordRegex.test(password)) {  
                byId("password1_span").style.color = "red";  
            }  
            else {  
                byId("password1_span").style.color = "green";  
            }  
        }     
              
        function checkRePassword(node){  //當鼠標離開節點時調用此方法,驗證節點內容是否符合注冊規范  
            //確認密碼                
            var rePassword = node.value;  
            var password = byId("password2").value;  
            //alert(repassword+"***"+password);           
            if(!password==rePassword){                    
                byId("rePassword2_span").style.color = "red";  
            }else if(!passwordRegex.test(rePassword)){  
                byId("rePassword2_span").style.color = "red";  
            }else{  
                byId("rePassword2_span").style.color = "green";  
            }  
        }         
  
        function checkEmail(node){  //當鼠標離開節點時調用此方法,驗證節點內容是否符合注冊規范  
            //校驗郵箱  
            var email = node.value;  
            if(!emailRegex.test(email)){  
                byId("email_span").style.color = "red";  
            }else{  
                byId("email_span").style.color = "green";  
            }  
        }  
              

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM