layui页面发送手机验证码(一)前端

原型图::

这里写图片描述

发送短信验证码 layuiAdmin有封装好的js
在admin.js中

//发送验证码
    ,sendAuthCode: function(options){
      options = $.extend({
        seconds: 60
        ,elemPhone: '#LAY_phone'
        ,elemVercode: '#LAY_vercode'
      }, options);

      var seconds = options.seconds
      ,token = null
      ,timer, countDown = function(loop){
        var btn = $(options.elem)
        seconds--;
        if(seconds < 0){
          btn.removeClass(DISABLED).html('获取验证码');
          seconds = options.seconds;
          clearInterval(timer);
        } else {
          btn.addClass(DISABLED).html(seconds + '秒后重获');
        }

        if(!loop){
          timer = setInterval(function(){
            countDown(true);
          }, 1000);
        }
      };

      $body.on('click', options.elem, function(){
        options.elemPhone = $(options.elemPhone);
        options.elemVercode = $(options.elemVercode);

        var elemPhone = options.elemPhone
        var elemVercode = options.elemVercode
        ,value = elemPhone.val()  //手机号
        ,vercode = elemVercode.val();//此处我加入图片验证码校验

        if(seconds !== options.seconds || $(this).hasClass(DISABLED)) return;

        if(!/^1\d{10}$/.test(value)){
          elemPhone.focus();
          return layer.msg('请输入正确的手机号')
        };

        if(typeof options.ajax === 'object'){
          var success = options.ajax.success;
          delete options.ajax.success;
        }

        admin.req($.extend(true, {
          url: '/sendCode'//自己接口
          ,type: 'get'
          ,data: {
                cellphone: value,//手机号
                vercode: vercode,//短信验证码
                uuid :$("#uuid").val()//此处我生成的uuid
          }
          ,success: function(res){
              if(res.code==0){
                  layer.msg('验证码已发送至你的手机,请注意查收', {
                      icon: 1
                      ,shade: 0
                  });
                  options.elemVercode.focus();
                  countDown();
                  success && success(res);
              }else {

                  //提示登录失败
                  layer.msg(res.msg, {
                      offset: '15px'
                      ,icon: 1
                      ,time:1000
                  });

                  //刷新验证码
                  $("#LAY-user-login-vercode").val("");
                  $("#LAY-user-get-vercode").attr("src","/vcode.jpg?t="+ new Date().getTime());
              }

          }
        }, options.ajax));
      });
    }
//页面中

//发送短信验证码
  admin.sendAuthCode({
    elem: '#LAY-user-forget-getsmscode'
    ,elemPhone: '#LAY-user-login-cellphone'
    ,elemVercode: '#LAY-user-login-vercode'
      //在admin.js中发送ajax
  });

校验验证码 以及 重置密码

//找回密码下一步
  form.on('submit(LAY-user-forget-submit)', function(obj){
    var field = obj.field;
      var mobile = field.cellphone;
    //请求接口
    admin.req({
      url: '/checkCode' //实际使用请改成服务端真实接口
      ,data: field
      ,done: function(res){
          if (res.data.request){
              location.hash = router.href + '/type=resetpass/mobile='+mobile;
          }else {
              layer.msg("短信验证码不正确", {icon: 5});
          }
      }
    });

    return false;
  });

  //重置密码
  form.on('submit(LAY-user-forget-resetpass)', function(obj){
    var field = obj.field;

      var router = layui.router();

    field.mobile = router.search.mobile
    //确认密码
    if(field.password !== field.repass){
      return layer.msg('两次密码输入不一致');
    }

    //请求接口
    admin.req({
      url: '/resPassword' //实际使用请改成服务端真实接口
      ,data: field
      ,done: function(res){        
        layer.msg('密码已成功重置', {
          offset: '15px'
          ,icon: 1
          ,time: 1000
        }, function(){
          location.hash = '/user/login'; //跳转到登入页
        });
      }
    });

    return false;
  });
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,这是一个使用layui框架编写的前端登录页面的示例代码: ``` <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>登录页面</title> <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.min.css"> <script src="https://cdn.staticfile.org/layui/2.5.6/layui.min.js"></script> <script src="https://cdn.staticfile.org/jquery/3.5.1/jquery.min.js"></script> </head> <body> <div class="layui-container"> <div class="layui-row"> <div class="layui-col-md-offset4 layui-col-md4"> <div class="layui-card"> <div class="layui-card-header">用户登录</div> <div class="layui-card-body layui-form"> <div class="layui-form-item"> <label class="layui-form-label">用户名</label> <div class="layui-input-block"> <input type="text" name="username" required lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">密码</label> <div class="layui-input-block"> <input type="password" name="password" required lay-verify="required" placeholder="请输入密码" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="login">登录</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button> </div> </div> </div> </div> </div> </div> </div> <script> //监听提交 layui.form.on('submit(login)', function(data){ layer.msg(JSON.stringify(data.field)); return false; }); </script> </body> </html> ``` 这段代码使用了layui的布局和表单组件,整体风格简洁优雅。你可以直接复制代码到HTML文件中查看效果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值