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


    本文转载自:http://blog.csdn.net/zoutongyuan/article/details/28094565

    项目结构 :

    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();  
            }  
        };  
      
    }();  

    效果 :

  • 相关阅读:
    「2020 新手必备 」极速入门 Retrofit + OkHttp 网络框架到实战,这一篇就够了!
    结合源码,重温 Android View 的事件处理知多少 ?
    Android 这 13 道 ContentProvider 面试题,你都会了吗?
    17 个必须掌握的 BroadcastReceiver 知识点「建议收藏」
    23 个重难点突破,带你吃透 Service 知识点「长达 1W+ 字」
    Activity 的 36 大难点,你会几个?「建议收藏」
    Python time模块
    vue项目的创建
    githunb和码云生成/添加SSH公钥
    weex打包apk步骤
  • 原文地址:https://www.cnblogs.com/wpcnblog/p/7506059.html
Copyright © 2020-2023  润新知