优秀的编程知识分享平台

网站首页 > 技术文章 正文

Bootstrap第十三天学习(bootstrap教程视频)

nanyue 2024-09-06 20:14:06 技术文章 9 ℃

Html:

<!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.0">
        <title></title>
        <link rel="stylesheet" href="../css/bootstrap.min.css">
        <link rel="stylesheet" href="../css/open-iconic-bootstrap.min.css">
        <link rel="stylesheet" href="../css/icomoon.css">
        <link rel="stylesheet" href="../css/style.css">
    </head>
    <body>
        <section class="probootstrap-section">
            <div class="container">
                <div class="row">
                    <div class="col-md-6">
                        <form action="#" method="post" class="probootstrap-form mb-5" id="form">
                            <div class="form-group">
                                <label for="l_username">用户名</label>
                                <input type="text" class="form-control" id="username" name="username" placeholder="请输入用户名">
                            </div>

                            <div class="form-group">
                                <label for="l_pwd">密码</label>
                                <input type="password" class="form-control" id="pwd" name="pwd" placeholder="请输入密码">
                            </div>

                            <div class="form-group">
                                <label for="l_pwd">确认密码</label>
                                <input type="password" class="form-control" id="pwdAgain" name="pwdAgain" placeholder="请输入确认密码">
                            </div>

                            <div class="form-group">
                                <label for="l_email">邮箱</label>
                                <input type="email" class="form-control" id="email" name="email" placeholder="请输入Email">
                            </div>

                            <div class="form-group">
                                <label for="l_checkCode">验证码</label>
                                <input type="text" class="form-control" id="checkCode" name="checkCode" placeholder="请输入验证码">
                                <div class="code" class="form-control">
                                    <canvas id="canvas" width="100" height="36"></canvas>
                                </div>
                            </div>

                            <div class="form-group">
                                <input type="submit" class="btn btn-primary" id="submit" name="submit" value="提交">
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </section>
        <script src="../js/jquery-3.7.1.js"></script>
        <script src="../js/checkCode.js"></script>
        <script src="../js/popper.min.js"></script>
        <script src="../js/bootstrap.min.js"></script>
        <script src="../js/bootstrapValidator.min.js"></script>
        <script>
            $(document).ready(function () {
                $('#form').bootstrapValidator({
                    // 默认的提示消息
                    message: 'This value is not valid',
                    // 表单框里右侧的icon
                    feedbackIcons: {
                            valid: 'glyphicon glyphicon-ok',
                            invalid: 'glyphicon glyphicon-remove',
                            validating: 'glyphicon glyphicon-refresh'
                    },
                    submitHandler: function (validator, form, submitButton) {
                        // 表单提交成功时会调用此方法
                        // validator: 表单验证实例对象
                        // form  jq对象  指定表单对象
                        // submitButton  jq对象  指定提交按钮的对象
                    },
                    fields: {
                        username: {
                            message: '用户名验证失败',
                            validators: {
                                notEmpty: {
                                    message: '用户名不能为空'
                                },
                                stringLength: {  //长度限制
                                    min: 6,
                                    max: 18,
                                    message: '用户名长度必须在6到18位之间'
                                },
                                regexp: { //正则表达式
                                    regexp: /^[a-zA-Z0-9_]+$/,
                                    message: '用户名只能包含大写、小写、数字和下划线'
                                }
                            }
                        },
                        pwd: {
                            message: '密码验证失败',
                            validators: {
                                notEmpty: {
                                    message: '密码不能为空'
                                },
                                stringLength: {  //长度限制
                                    min: 6,
                                    max: 18,
                                    message: '密码长度必须在6到18位之间'
                                },
                                identical: {  //比较是否相同
                                    field: 'pwdAgain',  //需要进行比较的input name值
                                    message: '两次密码不一致'
                                }
                            }
                        },
                        pwdAgain: {
                            message: '确认密码验证失败',
                            validators: {
                                identical: {  //比较是否相同
                                    field: 'pwd',  //需要进行比较的input name值
                                    message: '两次密码不一致'
                                }
                            }
                        },
                        email: {
                            message: '邮箱验证失败',
                            validators: {
                                emailAddress:{
                                    message: "邮箱格式不正确"
                                }
                            }
                        },
                        checkCode:{
                            message: '验证码验证失败',
                            validators: {
                                notEmpty: {
                                    message: '验证码不能为空'
                                }
                            }
                        }
                    }
                });
            });
        </script>
    </body>
</html>

Js:

var show_num = [];//将要生成的随机验证码
draw(show_num);

/**点击验证码重新生成*/
$("#canvas").on('click', function () {
    draw(show_num);
});

function randomColor() {//得到随机的颜色值==>把颜色设置为黑色,看的清楚
    var r = Math.floor(0);
    var g = Math.floor(0);
    var b = Math.floor(0);
    return "rgb(" + r + "," + g + "," + b + ")";
}

function draw(show_num) {
    var canvas_width = $('#canvas').width();
    var canvas_height = $('#canvas').height();
    var canvas = document.getElementById("canvas");//获取到canvas的对象,演员
    var context = canvas.getContext("2d");//获取到canvas画图的环境,演员表演的舞台
    canvas.width = canvas_width;
    canvas.height = canvas_height;
    var sCode = "1,2,3,4,5,6,7,8,9,0";
    var aCode = sCode.split(",");
    var aLength = aCode.length;//获取到数组的长度
    for (var i = 0; i <= 3; i++) {
    var j = Math.floor(Math.random() * aLength);//获取到随机的索引值
    var deg = Math.random() * 30 * Math.PI / 180;//产生0~30之间的随机弧度
    var txt = aCode[j];//得到随机的一个内容
    show_num[i] = txt.toLowerCase();
    var x = 10 + i * 20;//文字在canvas上的x坐标
    var y = 20 + Math.random() * 8;//文字在canvas上的y坐标
    context.font = "bold 26px 楷体";
    
    context.translate(x, y);
    context.rotate(deg);
    
    context.fillStyle = randomColor();
    context.fillText(txt, 0, 0);
    
    context.rotate(-deg);
    context.translate(-x, -y);
    
    }
    
    for (var i = 0; i <= 5; i++) { //验证码上显示线条
    context.strokeStyle = randomColor();
    context.beginPath();
    context.moveTo(Math.random() * canvas_width, Math.random() * canvas_height);
    context.lineTo(Math.random() * canvas_width, Math.random() * canvas_height);
    context.stroke();
    }
    for (var i = 0; i <= 30; i++) { //验证码上显示小点
    context.strokeStyle = randomColor();
    context.beginPath();
    var x = Math.random() * canvas_width;
    var y = Math.random() * canvas_height;
    context.moveTo(x, y);
    context.lineTo(x + 1, y + 1);
    context.stroke();
    }
    //为了测试方便不用每次都输入验证码
    //$("#checkCode").val(show_num.join(""));
}
最近发表
标签列表