簡單實現部分HTML表單校驗功能

【校驗標準】

名字:1-4位

密碼:1-4位

確認密碼

選擇性別(必選)

選擇愛好(選3以上)

簡介(140字以內)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>驗證表單</title>
    <style>
        td.ex{
            color: #959A9B
        }
    </style>
</head>
<body>
<center>
    <form action="http://qduyb.top" method="get" onsubmit="return checkAll()">
        <table>
            <caption>用戶註冊表</caption>
            <tr>
                <td>用戶姓名:</td>
                <td><input type="text" onblur="checkName(this)" id="name"></td>
                <td><label id="name_msg"></label></td>
                <td class="ex">4~8位</td>
            </tr>
            <tr>
                <td>用戶密碼:</td>
                <td><input type="password" onblur="checkPass(this)" id="pass"></td>
                <td><label id="pass_msg"></label></td>
                <td class="ex">4~8位</td>
            </tr>
            <tr>
                <td>重複密碼:</td>
                <td><input type="password" onblur="recheckPass(this)" id="repass"></td>
                <td><label id="repass_msg"></label></td>
                <td class="ex">和密碼一致</td>
            </tr>
            <tr>
                <td>性別:</td>
                <td>
                <input type="radio" name="sex" value="0" onclick="checkSex()">男
                <input type="radio" name="sex" value="0" onclick="checkSex()">女
                </td>
                <td><label id="sex_msg"></label></td>
                <td class="ex">請勿爲空</td>
            </tr>
            <tr>
                <td>愛好:</td>
                <td>
                    <input type="checkbox" name="hobby" value="soccer" onclick="checkHobby()"/>足球
                    <input type="checkbox" name="hobby" value="game" onclick="checkHobby()"/>遊戲
                    <input type="checkbox" name="hobby" value="travel" onclick="checkHobby()"/>旅行
                    <input type="checkbox" name="hobby" value="run" onclick="checkHobby()"/>跑步
                    <input type="checkbox" name="hobby" value="sleep" onclick="checkHobby()"/>睡覺
                </td>
                <td>
                    <label id="hobby_msg"></label>
                </td>
                <td class="ex">不能少於三個</td>
            </tr>
            <tr>
                <td>簡介:</td>
                <td>
                    <textarea name="weibo" id="" cols="40" rows="5" onkeyup="check(this.value)" 
                    oncopy="return false" oncut="return false" onpaste="return false"></textarea></td>
                <td>
                    <div id="msg"></div>
                </td>
                <td class="ex">不能多於140個字</td>
            </tr>
            <tr>
                <td ><input type="submit" value="提交"></td>
                <td ><input type="reset" value="取消"></td>
                <td></td><td></td>
            </tr>
        </table>
    </form>
    </center>
    <script>
        var flagName = false
        var flagPass = false
        var flagRepass = false
        var flagSex = false
        var flagHobby = false
        var flagText = false

        function checkName(flag) {
            var dom_lb = document.getElementById('name_msg')
            if (flag.value.length<4||flag.value.length>8) {
                dom_lb.innerHTML="<font color='red'>用戶姓名長度小四大八位</font>"
                flagName=false
                return
            }
            flagName=true
            dom_lb.innerHTML="<font color='green'>用戶姓名符合要求</font>"
        }

        function checkPass(flag) {
            var dom_lb = document.getElementById('pass_msg')
            if (flag.value.length<4||flag.value.length>8) {
                dom_lb.innerHTML="<font color='red'>用戶密碼長度小四大八位</font>"
                flagPass=false
                return
            }
            flagPass=true
            dom_lb.innerHTML="<font color='green'>用戶密碼符合要求</font>"
        }

        function recheckPass() {
            var dom_lb = document.getElementById('repass_msg')
            var dom_llb = document.getElementById('sex_msg')
            var pass = document.getElementById('pass').value;
            var repass = document.getElementById('repass').value;
            if (pass != repass) {
                dom_lb.innerHTML="<font color='red'>兩次密碼不一致</font>"
                flagRepass=false
                return
            }
            flagRepass=true
            dom_lb.innerHTML="<font color='green'>兩次密碼一致</font>"
            dom_llb.innerHTML="<img src='image/wrong.png'><font color='red'>請選擇性別</font>"
        }

        function checkSex() {
            var count = 0
            var dom_lb = document.getElementById('sex_msg')
            var dom_sex = document.getElementsByName("sex")
            for (var i = 0; i < dom_sex.length; i++) {
                if (dom_sex[i].checked) {
                    count++;
                }
            }
            if (count>0) {
                flagSex = true;
                dom_lb.innerHTML="<img src='image/right.png'>"
            }
        }

        function checkHobby() {
            var count = 0;
            var dom_hobby = document.getElementsByName("hobby")
            var dom_lb = document.getElementById("hobby_msg")
            for (var i = 0; i < dom_hobby.length; i++) {
                if(dom_hobby[i].checked){
                    count++
                }
                if (count<3) {
                    dom_lb.innerHTML="<font color='red'>愛好不能小於3個</font>"
                    flagHobby=false
                }
                else {
                    dom_lb.innerHTML="<font color='green'>愛好符合要求</font>"
                    flagHobby=true;
                }
            }
        }

        function check(value) {
            var dom_div = document.getElementById('msg')
            if (value.length<=140 && value.length>0) {
                dom_div.innerHTML="<font color='green'>您還可以輸入"+(140-value.length)+"個字符</font>"
                flagText=true;
                return
            }
            dom_div.innerHTML="<font color='red'>您已經超過"+(value.length-140)+"個字符</font>"
            flagText=false;
        }

        function checkAll() {
            return flagName && flagPass && flagRepass && flagSex && flagHobby && flagText
        }
    </script>
</body>
</html>

希望能幫助剛學表單校驗的朋友一點提示,有不懂的地方接着問

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章