Html5用户注册自动校验

        抽时间写了一个带有自动校验功能的Html5用户注册Demo。使用到Handlebars模板技术和手机验证码校验。

     以下是效果截图:

       

    1.页面代码:usersRegister.hbs

<!DOCTYPE html>
<!--[if IE 8 ]> <html lang="en" class="ie8"> <![endif]-->
<!--[if IE 9 ]> <html lang="en" class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!-->
<html lang="en">
<!--<![endif]-->
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <title>用户注册</title>

    <!--[if lt IE 9]>
    <script src="/assets/scripts/html5shiv.js"></script>
    <![endif]-->

    <link href="/assets/styles/jquery.idealforms.min.css" rel="stylesheet" media="screen" />

    <style type="text/css">
        body {
            font: normal 15px/1.5 Arial, Helvetica, Free Sans, sans-serif;
            color: #222;
            overflow-y: scroll;
            padding: 60px 0 0 0;
        }

        .main {
            width: 560px;
            height: 480px;
            margin: -50px auto;
        }

        #my-form {
            width: 560px;
            height: 450px;
            margin: 0 auto;
            border: 1px solid #ccc;
            padding: 3em;
            border-radius: 3px;
            box-shadow: 0 0 2px rgba(0, 0, 0, .2);
        }
    </style>

    <script type="text/javascript" src="/assets/scripts/jquery-1.8.2.min.js"></script>
    <script type="text/javascript" src="/assets/scripts/jquery.idealforms.js"></script>
</head>

<body>
<!-- style="background-image: url(static/image/bg.jpg) -->
    <div class="main" >
        <div style="height:5px;text-align:center;font-size:25px"> 欢迎您注册!</div>
        <!-- Begin Form -->
        <form id="my-form" class="myform">
            <div>
                <label>用户名:</label><input id="username" name="username" type="text" />
            </div>
            <div>
                <!-- <label>密码:</label><input id="pass" name="password" type="password" /> -->
                <label>密码:</label><input id="pass" name="password" type="text" />
            </div>
            <div>
                <label>邮箱:</label><input id="email" name="email"
                                         data-ideal="required email" type="email" />
            </div>
            <div>
                <label>电话:</label><input id="telephone" type="text" name="phone" data-ideal="phone" />
            </div>
            <div>
                <label>供应商V码:</label><input id="vCode" type="text" name="vCode" data-ideal="vCode" />
            </div>
            <div>
                <label>真实姓名:</label><input id="trueName" type="text" name="trueName" data-ideal="trueName" />
            </div>
            <div>
                <label>手机验证码:</label><input id="telCode" type="text" name="telCode" data-ideal="telCode" />
            </div>
            <div style="margin-bottom:5px;">
                <button id="getTelCode" type="button" style="margin-left:160px; margin-right:auto;" >获取手机校验码</button>
                <hr style="margin-top:5px; margin-bottom:5px;" />
            </div>
            <!--<div>
                <label>性别:</label>
                <select id="sex" name="sex">
                    <option value="男">男</option>
                    <option value="女">女</option>
                </select>
            </div>
            <div>
                <label>昵称:</label><input id="nickName" type="text" name="nickName" data-ideal="nickName" />
            </div>
            <div>
                <label>年龄:</label><input id="age" type="text" name="age" data-ideal="age" />
            </div>-->
            <!-- <div>
                <label>地址:</label><input type="text" name="address" data-ideal="address" />
            </div>
            <div>
                <label>QQ:</label><input type="text" name="qq" data-ideal="qq" />
            </div>
            <div>
                <label>邮编:</label><input type="text" name="zip" data-ideal="zip" />
            </div>
            <div>
                <label>传真:</label><input type="text" name="fax" data-ideal="fax" />
            </div>
            <div>
                <label>身份证:</label><input type="text" name="creditID" data-ideal="creditID" />
            </div>
            <div>
                <label>出生日期:</label><input name="date" class="datepicker"
                    data-ideal="date" type="text" placeholder="月/日/年" />
            </div>
            <div>
                <label>上传头像:</label><input id="file" name="file" multiple
                    type="file" />
            </div>
            <div>
                <label>个人主页:</label><input name="website" data-ideal="url"
                    type="text" />
            </div>
            <div>
                <label>备注:</label>
                <textarea id="comments" name="comments"></textarea>
            </div>
            -->
            <!-- <div id="languages">
                <label>语言:</label> <label><input type="checkbox"
                    name="langs[]" value="English" />英文</label> <label><input
                    type="checkbox" name="langs[]" value="Chinese" />中文</label> <label><input
                    type="checkbox" name="langs[]" value="Spanish" />西班牙文</label> <label><input
                    type="checkbox" name="langs[]" value="French" />法文</label>
            </div>
            <div>
                <label>精通几门:</label> <label><input type="radio"
                    name="radio" checked />1</label> <label><input type="radio"
                    name="radio" />2</label> <label><input type="radio" name="radio" />3</label>
                <label><input type="radio" name="radio" />4</label>
            </div>
            <div>
                <label>国籍:</label> <select id="states" name="states">
                    <option value="default">– 选择国籍 –</option>
                    <option value="AL">阿拉伯</option>
                    <option value="AK">中国</option>
                    <option value="AZ">美国</option>
                    <option value="AR">法国</option>
                    <option value="CA">英国</option>
                    <option value="CO">德国</option>
                    <option value="CT">西班牙</option>
                    <option value="DE">俄罗斯</option>
                </select>
            </div> -->
            <div style="margin-top:10px; margin-left:100px;margin-right:100px;">
                <button type="button" id="submit" class="submit">提交</button>
                <button id="reset" type="button" >重置</button>
            </div>

        </form>
        <!-- End Form -->
    </div>

<script type="text/javascript">
    var options = {

        onFail : function() {
            alert($myform.getInvalid().length + ' invalid fields.')
        },

        inputs : {
            'password' : {
                filters : 'required pass'
            },
            'username' : {
                filters : 'required username'
            },
            'email' : {
                filters : 'required email'
            },
            'phone' : {
                filters : 'required phone'
            },
            'trueName' : {
                filters : 'required'
            },
            'vCode' : {
                filters : 'required'
            },
            'telCode' : {
                filters : 'required'
            }

            /*
            'age' : {
                filters : 'required digits',
                data : {
                   min : 16,
                   max : 70
                }
            },
            'file' : {
                filters : 'extension',
                data : {
                    extension : [ 'jpg' ]
                }
            },
            'comments' : {
                filters : 'min max',
                data : {
                    min : 50,
                    max : 200
                }
            },
            'states' : {
                filters : 'exclude',
                data : {
                    exclude : [ 'default' ]
                },
                errors : {
                    exclude : '选择国籍.'
                }
            },
            'langs[]' : {
                filters : 'min max',
                data : {
                    min : 2,
                    max : 3
                },
                errors : {
                    min : 'Check at least <strong>2</strong> options.',
                    max : 'No more than <strong>3</strong> options allowed.'
                }
            }
            */
        }
    };

    $('#getTelCode').click(function() {
        var telephone = document.getElementById("telephone").value;   //手机号码
        if (telephone == null || telephone == ""){
            alert("手机号码不能为空!");
        }
        else{
            $.ajax({
                type : "GET",
                dataType : "json",
                url : "../api/getTelCode?telephone="+ telephone,
                success : function(msg) {
                },
                error : function(e) {
                    alert("获取手机校验码失败!" + e);
                }
            });
        }
    });

    var $myform = $('#my-form').idealforms(options).data('idealforms');

    $('#submit').click(function() {
        var username = document.getElementById("username").value; //用户名
        var password = document.getElementById("pass").value;    //密码
        var email = document.getElementById("email").value;     //邮箱
        var telephone = document.getElementById("telephone").value;     //手机号码
        var vCode = document.getElementById("vCode").value;     //公司V码
        var telCode = document.getElementById("telCode").value;     //手机校验码
        var trueName = document.getElementById("trueName").value;     //真实姓名

        $.ajax({
            type : "GET",
            url : "../api/usersRegister?username="+ username +"&password="+ password +"&email="+ email +"&telephone="+ telephone +"&vCode="+ vCode +"&telCode="+ telCode +"&trueName="+ trueName,

            success : function(msg) {
               //获取当前网址,如: http://localhost:8083/uimcardprj/share/meun.jsp
               var curWwwPath = window.document.location.href;
               //获取主机地址之后的目录,如: uimcardprj/share/meun.jsp
               var pathName = window.document.location.pathname;
               var pos = curWwwPath.indexOf(pathName);
               //获取主机地址,如: http://localhost:8083
               var localhostPaht = curWwwPath.substring(0, pos);
               //获取带"/"的项目名,如:/uimcardprj
               var projectName = pathName.substring(0, pathName.substr(1).indexOf('/') + 1);
               window.location.href = projectName + "/login";
               alert("注册成功!");
            },
            error : function(e) {
                alert("注册失败!" + e);
            }
        });
    });

    $('#reset').click(function() {
        $myform.reset().fresh().focusFirst();
    });

</script>

</body>
</html>
      2.jq输入校验:jquery.idealforms.js

    该js校验初始版本来自Cedric Ruiz,我略有修改。

  部分校验的规则如下: 

  required: '此处是必填的.'
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值