js:表單校驗(獲取元素、事件)


1、表單校驗步驟

(1)確定事件(submit事件),創建一個函數並和該事件綁定。

(2)書寫函數對輸入的數據是否合法進行校驗(需要設定ID並通過ID來獲取用戶輸入的數據的值)。

(3)輸入的信息合法,可以正常提交;不合法的話,不能提交用戶信息並給出提示信息。

2、校驗函數

(1)非空校驗:

通過ID獲取值,對是否為空進行校驗。

                var uValue = document.getElementById("user").value;
                if(uValue==""){
                    alert("用戶名不能為空!");
                    return false;
                }
                
                var pValue = document.getElementById("password").value;
                if(pValue==""){
                    alert("密碼不能為空!");
                    return false;
                }

相應的表單中要設置ID屬性,以便通過ID獲取表單中的數據。

                            <tr>
                                <td>
                                    用戶名
                                </td>
                                <td>
                                    <input type="text" name="user" size="34px" id="user"/>
                                </td>
                            </tr>
                            
                            <tr>
                                <td>
                                    密碼
                                </td>
                                <td>
                                    <input type="password" name="password" size="34px" id="password" />
                                </td>
                            </tr>

測試:

 (2)確認密碼校驗:

var rpValue = document.getElementById("repassword").value;
                if(rpValue!=pValue){
                    alert("兩次密碼輸入不一致!");
                    return false;
                }

測試結果:

 (3)郵箱格式校驗(正則表達式:https://www.cnblogs.com/zhai1997/p/11354683.html):

                var eValue = document.getElementById("email").value;
                if(!/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/.test(eValue)){
                    alert("郵箱格式不正確!");
                    return false;
                }

測試結果:

  3、完整代碼

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>注冊頁面</title>
        <script>
            function checkForm(){
                var uValue = document.getElementById("user").value;
                if(uValue==""){
                    alert("用戶名不能為空!");
                    return false;
                }
                
                var pValue = document.getElementById("password").value;
                if(pValue==""){
                    alert("密碼不能為空!");
                    return false;
                }
                
                var rpValue = document.getElementById("repassword").value;
                if(rpValue!=pValue){
                    alert("兩次密碼輸入不一致!");
                    return false;
                }
                
                var eValue = document.getElementById("email").value;
                if(!/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/.test(eValue)){
                    alert("郵箱格式不正確!");
                    return false;
                }
            }
        </script>
    </head>
    <body>
        <table border="1px" align="center" width="1300px" cellpadding="0px" cellspacing="0px">
            <tr>
                <td height="600px" ">
                    <form action="#" method="get" name="regForm" onsubmit="return checkForm()">
                        <table border="1px" width="450px" height="400px" align="center" cellpadding="0px" cellspacing="0px" bgcolor="white">
                            <tr>
                                <td>
                                    用戶名
                                </td>
                                <td>
                                    <input type="text" name="user" size="34px" id="user"/>
                                </td>
                            </tr>
                            
                            <tr>
                                <td>
                                    密碼
                                </td>
                                <td>
                                    <input type="password" name="password" size="34px" id="password" />
                                </td>
                            </tr>
                            
                            <tr>
                                <td>
                                    確認密碼
                                </td>
                                <td>
                                    <input type="password" name="repassword" size="34px" id="repassword"></input>
                                </td>
                            </tr>
                            
                            <tr>
                                <td>
                                    Email
                                </td>
                                <td>
                                    <input type="text" name="email" size="34px" id="email"/>
                                </td>
                            </tr>
                            
                            <tr>
                                <td>
                                    姓名
                                </td>
                                <td>
                                    <input type="text" name="username" size="34px" id="username"></input>
                                </td>
                            </tr>
                            
                            <tr>
                                <td>
                                    性別
                                </td>
                                <td>
                                    <input type="radio" name="sex" value=""/><input type="radio" name="sex" value=""/></td>
                            </tr>
                            
                            <tr>
                                <td>
                                    出生日期
                                </td>
                                <td>
                                    <input type="text" name="birthday" size="34px" id="birthday"></input>
                                </td>
                            </tr>
                            
                            <tr>
                                <td colspan="2">
                                    <center>
                                    <input type="submit" value="注冊" />
                                    </center>
                                </td>
                            </tr>
                        </table>
                    </form>
                </td>                
            </tr>
        </table>
    </body>
</html>

4、改進

以上方法只有在提交的時候才能發現數據的錯誤,對於用戶來說很不方便,以下的改進代碼可以增加頁面的用戶友好性:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>注冊頁面</title>
        <script>
            function showTips(id,info){
                document.getElementById(id+"span").innerHTML="<font color='gray'>"+info+"</font>";
            }
            
            function check(id,info){
                var uValue = document.getElementById(id).value;
                if(uValue==""){
                    document.getElementById(id+"span").innerHTML="<font color='red'>"+info+"</font>";
                }else{
                    document.getElementById(id+"span").innerHTML="";
                }
            }
        </script>
    </head>
    <body>
        <table border="1px" align="center" width="1300px" cellpadding="0px" cellspacing="0px">
            <tr>
                <td height="600px" ">
                    <form action="#" method="get" name="regForm" onsubmit="return checkForm()">
                        <table border="1px" width="450px" height="400px" align="center" cellpadding="0px" cellspacing="0px" bgcolor="white">
                            <tr>
                                <td>
                                    用戶名
                                </td>
                                <td>
                                    <input type="text" name="user" size="34px" id="user" 
                                        onfocus="showTips('user','用戶名必填!')" 
                                        onblur="check('user','用戶名不能為空!')"/>
                                        <span id="userspan"></span>
                                </td>
                            </tr>
                            
                            <tr>
                                <td>
                                    密碼
                                </td>
                                <td>
                                    <input type="password" name="password" size="34px" id="password"  
                                        onfocus="showTips('password','密碼必填')"
                                        onblur="check('password','密碼不能為空!')"/>
                                        <span id="passwordspan"></span>
                                </td>
                            </tr>
                            
                            <tr>
                                <td>
                                    確認密碼
                                </td>
                                <td>
                                    <input type="password" name="repassword" size="34px" id="repassword"></input>
                                </td>
                            </tr>
                            
                            <tr>
                                <td>
                                    Email
                                </td>
                                <td>
                                    <input type="text" name="email" size="34px" id="email"/>
                                </td>
                            </tr>
                            
                            <tr>
                                <td>
                                    姓名
                                </td>
                                <td>
                                    <input type="text" name="username" size="34px" id="username"></input>
                                </td>
                            </tr>
                            
                            <tr>
                                <td>
                                    性別
                                </td>
                                <td>
                                    <input type="radio" name="sex" value=""/><input type="radio" name="sex" value=""/></td>
                            </tr>
                            
                            <tr>
                                <td>
                                    出生日期
                                </td>
                                <td>
                                    <input type="text" name="birthday" size="34px" id="birthday"></input>
                                </td>
                            </tr>
                            
                            <tr>
                                <td colspan="2">
                                    <center>
                                    <input type="submit" value="注冊" />
                                    </center>
                                </td>
                            </tr>
                        </table>
                    </form>
                </td>                
            </tr>
        </table>
    </body>
</html>

 可以看出在沒有填寫密碼的時候,頁面能夠立即給出提示信息。

 


免責聲明!

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



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