微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

基于Bootstrap+jQuery.validate Form表单验证实践

基于Bootstrap jQuery.validate Form表单验证实践

项目结构 :




github 上源码地址:https://github.com/starzou/front-end-example    点击打开

1、form 表单代码

<!DOCTYPE html>
<html>
    <head>
        <title>Bootstrap Form Template</title>
        <Meta charset="utf-8" />
        <Meta name="viewport" content="width=device-width,initial-scale=1.0">
        <link rel="stylesheet" type="text/css" href="plugins/bootstrap/css/bootstrap.css"/>
    </head>
    <body>
        <div class="container">
            <h1 class="text-center text-danger">Form 示例</h1>
            <form role="form" class="form-horizontal" action="javascript:alert('验证成功,可以提交.');" method="post">
                <div class="form-group">
                    <label class="col-md-2 control-label" for="name">Name</label>
                    <div class="col-md-10">
                        <input class="form-control" name="name" type="text" id="name" placeholder="Name" value="" />
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-md-2 control-label" for="exampleInputPassword1">Password</label>
                    <div class="col-md-10">
                        <input type="password" name="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
                    </div>
                </div>
                <div class="form-group">
                    <label for="intro" class="control-label col-md-2">Intro</label>
                    <div class="col-md-10">
                        <textarea id="intro" class="form-control" rows="3" name="intro" placeholder="Intro"></textarea>
                    </div>
                </div>

                <div class="form-group">
                    <label class="control-label col-md-2">Gender</label>
                    <div class="col-md-10">
                        <label class="radio-inline">
                            <input type="radio" name="gender"  value="男" />
                            boy </label>

                        <label class="radio-inline">
                            <input type="radio" name="gender"  value="女" />
                            gril </label>
                    </div>
                </div>

                <div class="form-group">
                    <label for="hobby" class="control-label col-md-2">Hobby</label>
                    <div class="col-md-10">
                        <div class="checkBox">
                            <label>
                                <input type="checkBox" name="hobby" value="Music">
                                Music</label>
                        </div>
                        <div class="checkBox">
                            <label>
                                <input type="checkBox" name="hobby" id="" value="Game" />
                                Game </label>
                        </div>

                        <label class="checkBox-inline">
                            <input type="checkBox" id="inlineCheckBox1" value="option1">
                            option1 </label>
                        <label class="checkBox-inline">
                            <input type="checkBox" id="inlineCheckBox2" value="option2">
                            option3</label>
                        <label class="checkBox-inline">
                            <input type="checkBox" id="inlineCheckBox3" value="option3">
                            option3 </label>
                    </div>
                </div>

                <div class="form-group">
                    <label for="sel" class="control-label col-md-2">Select</label>
                    <div class="col-md-10">
                        <select multiple="" id="sel" name="sel" class="form-control">
                            <option value="1">1</option>
                            <option value="2">2</option>
                            <option value="3">3</option>
                        </select>
                    </div>
                </div>

                <div class="form-group">
                    <div class="col-md-offset-2 col-md-10">
                        <button type="submit" class="btn btn-primary btn-sm">
                            Submit
                        </button>
                        <button type="reset" class="btn btn-primary btn-sm">
                            Reset
                        </button>
                    </div>
                </div>
            </form>
        </div>

        <script src="plugins/jquery-1.11.1.js" type="text/javascript" charset="utf-8"></script>
        <script src="plugins/bootstrap/js/bootstrap.js" type="text/javascript" charset="utf-8"></script>
        <script src="plugins/jquery-validation/dist/jquery.validate.js" type="text/javascript" charset="utf-8"></script>

        <script src="scripts/form.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript" charset="utf-8">
            MyValidator.init();
        </script>
    </body>
</html>

需要引用  jquery.js bootstrap.js, jquery.validate.js 库

2、form.js 代码

var MyValidator = function() {
    var handleSubmit = function() {
        $('.form-horizontal').validate({
            errorElement : 'span',errorClass : 'help-block',focusInvalid : false,rules : {
                name : {
                    required : true
                },password : {
                    required : true
                },intro : {
                    required : true
                }
            },messages : {
                name : {
                    required : "Username is required."
                },password : {
                    required : "Password is required."
                },intro : {
                    required : "Intro is required."
                }
            },highlight : function(element) {
                $(element).closest('.form-group').addClass('has-error');
            },success : function(label) {
                label.closest('.form-group').removeClass('has-error');
                label.remove();
            },errorPlacement : function(error,element) {
                element.parent('div').append(error);
            },submitHandler : function(form) {
                form.submit();
            }
        });

        $('.form-horizontal input').keypress(function(e) {
            if (e.which == 13) {
                if ($('.form-horizontal').validate().form()) {
                    $('.form-horizontal').submit();
                }
                return false;
            }
        });
    }
    return {
        init : function() {
            handleSubmit();
        }
    };

}();

效果

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐