小多鱼就是我 2021-10-08 21:11 采纳率: 0%
浏览 91

利用JavaScript或者jQuery等完成html页面元素合法性的校验

利用JavaScript或者jQuery等完成页面元素合法性的校验,例如当用户输入的姓名不符合要求的情况,一旦鼠标离开姓名输入框,则后面的文字变为红色;反之当用户输入的姓名符合要求时,鼠标离2,开姓名框则后面的文字变为绿色。尝试了多次,但是点击还是输入错误都没有变化。


```css
<!DOCTYPE html>
<html>
    <head>
        <!-- <meta charset="utf-8" /> -->
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>用户注册</title>
    </head>
    <body>
        <form>
            <table align="center" width="500">
                <tr>
                    <td>用户名:</td>
                    <td>
                        <input name="username" type="text" id="un"/>
                        <span id="un">用户名由3-5个字符组成</span>
                    </td>
                </tr>
                <tr>
                    <td>密码:</td>
                    <td>
                        <input name="password" type="password" id="pw"/>
                        <span id="pw">请输入8-12位密码</span>
                    </td>
                </tr>
                <tr>
                    <td>确认密码:</td>
                    <td>
                        <input name="pwdrepeat" type="password" id="pwr"/>
                        <span id="pwr">两次密码不一致</span>
                    </td>
                </tr>
                <tr>
                    <td>Email</td>
                    <td>
                        <input name="email" type="email" id="em"/>
                        <span id="em">格式示例:xxxxxxx@163.com</span>
                    </td>
                </tr>
                <tr>
                    <td>手机号:</td>
                    <td>
                        <input name="telphone" type="text" id="tel"/>
                        <span id="tel">格式示例:13803780000</span>
                    </td>
                </tr>
                <tr>
                    <td>真实姓名:</td>
                    <td>
                        <input name="rename" type="text" id="rn"/>
                        <span id="rn">由2-5个中文组成</span>
                    </td>
                </tr>
                <tr>
                    <td >省份:</td>
                    <td>
                        <!-- <input list="area" /> -->
                        <!-- <datalist id="area" >
                            <option value="北京">
                            <option value="上海">
                            <option value="河南">
                        </datalist> -->
                        <select name="area">
                            <option value="0">--请选择--</option>
                            <option value="1">北京</option>
                            <option value="2">上海</option>
                            <option value="3">河南</option>
                        </select>
                        请选择省份
                    </td>
                    <!-- <td>请选择省份</td> -->
                </tr>
                <tr>
                    <td>技术方向:</td>
                    <td>
                        <input name="diff" type="radio" value="1"/>Java
                        <input name="diff" type="radio" value="2"/>.Net
                        <input name="diff" type="radio" value="3"/>PHP
                        <input name="diff" type="radio" value="4"/>网页
                        <input name="diff" type="radio" value="5"/>IOS
                        <input name="diff" type="radio" value="6"/>Android
                    </td>
                </tr>
                <tr colspan="2" aligin="center">
                    <td></td>
                    <td>
                        <input type="submit" name="submit"  value="注册" />
                        <input type="reset" name="reset" value="重置" />
                    </td>
                </tr>
            </table>
        </form>
        <script type="text/javascript">
            function checkForm(){
                if(document.getElementById("un").value.length<3||document.getElementById("username").value.length>5){
                    document.getElementById("username").innerHTML="<em style='color:#FF0000'>用户名由3-5位2字符组成</em>";
                    document.getElementById("un").focus();
                    return false;
                }
                else{
                    document.getElementById("username").innerHTML="<em style='color:#3FBF3F'></em>";
                }
                //检验密码是否合格
                if(document.getElementById("pw").value.length<8||document.getElementsByClassName(“pw).value.lenght>12){
                    document.getElementById("password").innerHTML="<em style='color:#FF0000'>请输入8-12位密码</em>";
                    document.getElementById("pw").focus();
                    return false;
                }
                else{
                    document.getElementById("password").innerHTML="<em style='color:#3FBF3F'></em>";
                }
                //检验两次密码是否一致
                if(document.getElementById("pwr").value != document.getElementById("PW").value){
                    document.getElementById("pwdrepeat").innerHTML="<em style='color:#FF0000'>两次密码输入不一致</em>";
                    document.getElementById("pwr").focus();
                    return false;
                }
                else{
                    document.getElementById("pwdrepeat").innerHTML="<em style='color:#3FBF3F'></em>";
                }
                //获取Email的域值
                var email = document.getElementById("em").value;
                //电子邮箱的正则表达式
                var pattern = /^[a-zA-Z0-9#_\^\$\.\*\+\-\?\=\!\|\\\/\(\)\[\]\{\}]+@[a-zA-Z0-9]+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
                if(email.length==0){
                    document.getElementById("email").innerHTML="<em style='coloe:#FF0000'>电子邮箱不能为空</em>"
                    document.getElementById("em").focus();
                    return false;
                }
                else if(!pattern.test(email))
                {
                    document.getElementById("email").innerHTML="<em style='coloe:#FF0000'>电子邮箱不能为空</em>"
                    document.getElementById("em").focus();
                    return false;
                }
                else{
                    document.getElementById("email").innerHTML="<em style='color:#3FBF3F'></em>";
                }
            }
            
        </script>
    </body>
</html>


```

  • 写回答

2条回答 默认 最新

  • CSDN专家-showbo 2021-10-08 21:15
    关注

    题主要的代码如下,有帮助麻烦点个采纳【本回答右上角】,谢谢~~有其他问题可以继续交流~

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>用户注册</title>
    </head>
    <body>
        <style>
            .red{color:#f00}
            .green{color:green}
        </style>
        <form >
            <table align="center" width="500">
                <tr>
                    <td>用户名:</td>
                    <td>
                        <input name="username" type="text" id="un" class="valid" />
                        <span id="un">用户名由3-5个字符组成</span>
                    </td>
                </tr>
                <tr>
                    <td>密码:</td>
                    <td>
                        <input name="password" type="password" id="pw" class="valid" />
                        <span id="pw">请输入8-12位密码</span>
                    </td>
                </tr>
                <tr>
                    <td>确认密码:</td>
                    <td>
                        <input name="pwdrepeat" type="password" id="pwr" class="valid" />
                        <span id="pwr">两次密码不一致</span>
                    </td>
                </tr>
                <tr>
                    <td>Email</td>
                    <td>
                        <input name="email" type="email" id="em" class="valid" />
                        <span id="em">格式示例:xxxxxxx@163.com</span>
                    </td>
                </tr>
                <tr>
                    <td>手机号:</td>
                    <td>
                        <input name="telphone" type="text" id="tel" />
                        <span id="tel">格式示例:13803780000</span>
                    </td>
                </tr>
                <tr>
                    <td>真实姓名:</td>
                    <td>
                        <input name="rename" type="text" id="rn" />
                        <span id="rn">由2-5个中文组成</span>
                    </td>
                </tr>
                <tr>
                    <td>省份:</td>
                    <td>
                        <!-- <input list="area" /> -->
                        <!-- <datalist id="area" >
                            <option value="北京">
                            <option value="上海">
                            <option value="河南">
                        </datalist> -->
                        <select name="area">
                            <option value="0">--请选择--</option>
                            <option value="1">北京</option>
                            <option value="2">上海</option>
                            <option value="3">河南</option>
                        </select>
                        请选择省份
                    </td>
                    <!-- <td>请选择省份</td> -->
                </tr>
                <tr>
                    <td>技术方向:</td>
                    <td>
                        <input name="diff" type="radio" value="1" />Java
                        <input name="diff" type="radio" value="2" />.Net
                        <input name="diff" type="radio" value="3" />PHP
                        <input name="diff" type="radio" value="4" />网页
                        <input name="diff" type="radio" value="5" />IOS
                        <input name="diff" type="radio" value="6" />Android
                    </td>
                </tr>
                <tr colspan="2" aligin="center">
                    <td></td>
                    <td>
                        <input type="submit" name="submit" value="注册" />
                        <input type="reset" name="reset" value="重置" />
                    </td>
                </tr>
            </table>
        </form>
    
        <script src="https://g.csdnimg.cn/??lib/jquery/1.12.4/jquery.min.js"></script>
        <script type="text/javascript">
            $('.valid').blur(function () {
                switch (this.name) {
                    case 'username':
                        $(this).next().attr('class', this.value.length < 3 || this.value.length > 5 ? 'red' : 'green');
                        break;
                    case 'password':
                        $(this).next().attr('class', this.value.length < 8 || this.value.length > 12 ? 'red' : 'green');
                        if (this.form.pwdrepeat.value!='')$(this.form.pwdrepeat).trigger('blur')
                        break;
                    case 'pwdrepeat':
                        $(this).next().attr('class', this.value == '' ||this.value!=this.form.password.value ? 'red' : 'green');
                        break;
                    case 'email':
                        $(this).next().attr('class', /^[a-zA-Z0-9#_\^\$\.\*\+\-\?\=\!\|\\\/\(\)\[\]\{\}]+@[a-zA-Z0-9]+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(this.value) ? 'green' : 'red');
                        break;
                }
            });
            $('form').submit(function () {
                $('.valid').trigger('blur');
                if ($(this).find('.red').length > 0) { alert('数据有误,请确认!'); return false }
    
            })
        </script>
    </body>
    </html>
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 10月8日

悬赏问题

  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?