vue 实现通过手机发送短信验证码注册功能


Posted in Javascript onApril 19, 2018

效果如下:

vue 实现通过手机发送短信验证码注册功能

代码如下:

template代码:

<el-main>
  <el-form 
   :model="ReginForm"
   ref="ReginForm"
   :rules="rule"
   class="regform"
   label-width="0">
   <h3 class="login-text">手机注册</h3>
    <el-form-item prop="tel">
    <el-input 
     type="text"
     v-model.number="ReginForm.tel"
     placeholder="手机号码">
    </el-input>
   </el-form-item>
    <el-form-item prop="password">
    <el-input 
     type="password"
     v-model="ReginForm.password"
     placeholder="密码">
    </el-input>
   </el-form-item>
        <div>
       <input class="auth_input" type="text" v-model="verification"  placeholder="输入验证码" />
  <span v-show="sendAuthCode" class="auth_text auth_text_blue" @click="getAuthCode">获取验证码</span>
  <span v-show="!sendAuthCode" class="auth_text"> <span class="auth_text_blue">{{auth_time}} </span> 秒之后重新发送验证码</span> 
  </div>
   <el-form-item >
    <el-button 
     type="success" 
     class="submitBtn"
     round
     @click.native.prevent="submit"
     :loading="logining">
     注册
    </el-button>
    <hr>
    <p>已经有账号,马上去<span class="to" @click="tologin">登录</span></p>
   </el-form-item>
  </el-form>
 </el-main>
</template>

script 代码如下

export default {
 data () {
  let confirmpasswordCheck = (rule, value, callback) => {
   if (value === '') {
    return callback(new Error('密码是必须的'))
   } else {
    return callback()
   }
  }
  let telCheck = (rule, value, callback) => {
   if (value === '') {
    return callback(new Error('电话号码是必须的'))
   } else if (!Number.isInteger(value)) {
    return callback(new Error('电话号码必须是数字'))
   } else if (value.toString().length !== 11) {
    return callback(new Error('电话号码必须是11位数字'))
   } else {
    callback()
   }
  }
  return {
   ReginForm: {
    password: '',
    tel: '',
   },
   logining: false,
    sendAuthCode:true,/*布尔值,通过v-show控制显示‘获取按钮'还是‘倒计时' */
      auth_time: 0, /*倒计时 计数器*/
      verification:"",//绑定输入验证码框框
   rule: {
    password: [
     {
      required: true,
      message: '密码是必须的!',
      trigger: 'blur'
     }
    ],
    tel: [
     {
      required: true,
      validator: telCheck,
      trigger: 'blur'
     }
    ],
   }
  }
 },
 methods: {
   //  验证
     getAuthCode:function () {
      const verification =this.ReginForm.tel;
       const url = " "
       console.log("url",url);
        this.$http.get(url).then(function (response) {
         console.log("请求成功",response)
         }, function (error) {
         console.log("请求失败",error);
        })
      this.sendAuthCode = false;
     //设置倒计时秒
      this.auth_time = 10;
      var auth_timetimer = setInterval(()=>{
        this.auth_time--;
        if(this.auth_time<=0){
          this.sendAuthCode = true;
          clearInterval(auth_timetimer);
        }
      }, 1000);
    },
  // 封装注册发送请求方法
   thisAjax(){
   const passwordData=this.ReginForm.password;
   const phoneData =this.ReginForm.tel;
   const mCodeData=this.verification;
  //  手机注册
//emulateJSON:true设置后post可跨域
  const url = " 填接口"
      this.$http.post(url,{填传入的参数},{emulateJSON:true}).then(function (response) 
 {
     //登录后跳转的页面
        this.$router.push('/');
      }, function (error) {
        alert("请求失败",error);
      })
  },
  // ...
  submit () {
   this.$refs.ReginForm.validate(valid => {
    if (valid) {
     this.logining = true
      this. thisAjax();
     console.log('开始写入后台数据!')
    } else {
     console.log('submit err')
    }
   })
  },
  reset () {
   this.$refs.ReginForm.resetFields()
  },
  tologin () {
//已经注册过跳转到登入界面
   this.$router.push('/phoneLogin')
  }
 }
}
</script>

style代码如下:

.regform {
 margin: 20px auto;
 width: 310px;
 background: #fff;
 box-shadow: 0 0 10px #B4BCCC;
 padding: 30px 30px 0 30px;
 border-radius: 25px; 
}
.submitBtn {
 width: 65%;
}
.to {
 color: #FA5555;
 cursor: pointer;
}
.auth_input{
  width:140px;
  height:38px;
  margin-bottom:20px;
  border:1px solid #DCDFE6;
  /* color:red; */
  padding-left:10px;
  border-radius: 8%;
}
.regform[data-v-92def6b0]{
  width:370px;
  min-height: 440px;
}
.login-text{
 text-align: center;
 margin-bottom:20px;
}
</style>

总结

以上所述是小编给大家介绍的vue 实现通过手机发送验证码注册功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
优化innerHTML操作(提高代码执行效率)
Aug 20 Javascript
使用jQuery Ajax功能时需要注意的一个问题(内存溢出)
May 30 Javascript
在页面中js获取光标/鼠标的坐标及光标的像素坐标
Nov 11 Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
Dec 12 Javascript
Angularjs整合微信UI(weui)
Mar 15 Javascript
js实现上传图片及时预览
May 07 Javascript
javascript匀速动画和缓冲动画详解
Oct 20 Javascript
Vue.js实现列表清单的操作方法
Nov 15 Javascript
解决vue 引入子组件报错的问题
Sep 06 Javascript
vue遍历生成的输入框 绑定及修改值示例
Oct 30 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
Dec 10 Javascript
JavaScript进阶(三)闭包原理与用法详解
May 09 Javascript
详解react-redux插件入门
Apr 19 #Javascript
vuex state及mapState的基础用法详解
Apr 19 #Javascript
使用vuex的state状态对象的5种方式
Apr 19 #Javascript
react redux入门示例
Apr 19 #Javascript
JS实现读取xml内容并输出到div中的方法示例
Apr 19 #Javascript
使用typescript开发angular模块并发布npm包
Apr 19 #Javascript
Angular 封装并发布组件的方法示例
Apr 19 #Javascript
You might like
全国FM电台频率大全 - 2 天津市
2020/03/11 无线电
浅析PHP页面局部刷新功能的实现小结
2013/06/21 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
2014/05/04 PHP
ecshop后台编辑器替换成ueditor编辑器
2015/03/03 PHP
php中使用sftp教程
2015/03/30 PHP
事件绑定之小测试  onclick &amp;&amp; addEventListener
2011/07/31 Javascript
javascript错误的认识不用关心内存管理
2012/12/15 Javascript
jquery隐藏标签和显示标签的实例
2013/11/11 Javascript
给应用部分的js代码设定一个统一的入口
2014/06/15 Javascript
jquery动态遍历Json对象的属性和值的方法
2016/07/27 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
javascript数组去重方法分析
2016/12/15 Javascript
Node.js常用工具之util模块
2017/03/09 Javascript
使用ef6创建oracle数据库的实体模型遇到的问题及解决方案
2017/11/09 Javascript
vue devtools的安装与使用教程
2018/08/08 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
node 解析图片二维码的内容代码实例
2019/09/11 Javascript
JS数组reduce()方法原理及使用技巧解析
2020/07/14 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
2020/08/07 Javascript
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
Python入门教程之运算符与控制流
2016/08/17 Python
详解Django之admin组件的使用和源码剖析
2018/05/04 Python
python 实现求解字符串集的最长公共前缀方法
2018/07/20 Python
python 自动去除空行的实例
2018/07/24 Python
在双python下设置python3为默认的方法
2018/10/31 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
Python的高阶函数用法实例分析
2019/04/11 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
英国家电直销:Appliances Direct
2016/09/22 全球购物
《小松树和大松树》教学反思
2014/02/20 职场文书
火锅店营销方案
2014/02/26 职场文书
竞聘上岗演讲
2014/05/19 职场文书
大专生自荐书范文
2014/06/22 职场文书
教师群众路线剖析材料
2014/09/29 职场文书
证婚人婚礼致辞
2015/07/28 职场文书
springboot集成springCloud中gateway时启动报错的解决
2021/07/16 Java/Android