美文网首页
表单验证jQuery

表单验证jQuery

作者: 红酒煮咖啡 | 来源:发表于2020-08-13 09:40 被阅读0次
效果如图: 2020-08-13_093646.png

有错误信息的时候提交焦点会返回错误处,点击重置表单和提示信息都重置
代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <script src="../jquery-1.8.3.min.js"></script>
        <title></title>
        <style>
            form>p{
                font: 14px;
                color: #333;
                line-height: 30px;
            }
            span.default{
                color: #f00;
            }
            span.w{
                color: #f00;
                background: url(../img/reg3.gif) no-repeat left center;
                padding-left: 25px;
            }
            span.r{
                color: #0f0;
                background: url(../img/reg4.gif) no-repeat left center;
                padding-left: 25px;
            }
        </style>
    </head>
    <body>
        <form name="form1">
            <p>用户名:<input type="text" name="username" /><span id="namemsg" class="default">*</span><br></p>
            <p>手机号:<input type="text" name="tel" /><span id="telmsg" class="default">*</span><br></p>
            <p>邮箱:<input type="text" name="email" /><span class="default">*</span></p>
            <p><input type="submit" value="提交" name="sub" />
            <input type="reset" value="重置" name="rest"/></p>
        </form>
    </body>
    <script>
        $(function(){
            var rmsg="输入正确";
            $("input[name=username]").keyup(function(){
                var reg_name=/^\w{3,30}$/;
                if(reg_name.test($(this).val())){
                    $(this).next("span").html(rmsg).attr("class","r");
                }else{
                    $(this).next("span").html("请输入3-30位的字母数字名称").attr("class","w");
                }
            })
            
            $("input[name=tel]").keyup(function(){
                var reg_tel=/^(13|15|17|18|19)\d{9}$/;
                if(reg_tel.test($(this).val())){
                    $(this).next("span").html(rmsg).attr("class","r");
                }else{
                    $(this).next("span").html("请输入正确的手机号").attr("class","w");
                }
            })
            
            $("input[name=email]").keyup(function(){
                var reg_email=/^\w+@\w+(\.com|\.cn)$/;
                if(reg_email.test($(this).val())){
                    $(this).next("span").html(rmsg).attr("class","r");
                }else{
                    $(this).next("span").html("请输入正确的邮箱").attr("class","w");
                }
            })
            
            //提交验证
            $("form[name=form1]").submit(function(event){//js兼容性写法:e=e||window.event 
                if(!($("input[name=username]").next("span").hasClass("r"))){
                    $("input[name=username]").triggerHandler("keyup");
                    event.preventDefault();//同return false;
                }
                if(!($("input[name=tel]").next("span").hasClass("r"))){
                    $("input[name=tel]").triggerHandler("keyup");
                    return false;
                }
                if(!($("input[name=email]").next("span").hasClass("r"))){
                    $("input[name=email]").triggerHandler("keyup");
                    return false;
                }
            })
            
            //重置
            $("input[name=rest]").click(function(){
                $("input[name=username]").next("span").html("*").attr("class","default");
                $("input[name=tel]").next("span").html("*").attr("class","default");
                $("input[name=email]").next("span").html("*").attr("class","default");
            })
        })
    </script>
</html>

相关文章

网友评论

      本文标题:表单验证jQuery

      本文链接:https://www.haomeiwen.com/subject/eqfbdktx.html