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 相关文章推荐
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
Sep 25 Javascript
IE和Firefox下javascript的兼容写法小结
Dec 10 Javascript
jQuery - css() 方法示例详解
Jan 16 Javascript
用javascript替换URL中的参数值示例代码
Jan 27 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
Sep 02 Javascript
javascript伸缩菜单栏实现代码分享
Nov 12 Javascript
jQuery操作json常用方法示例
Jan 04 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
Jun 09 jQuery
微信小程序实现tab和swiper切换结合效果
Jul 17 Javascript
js使用swiper实现层叠轮播效果实例代码
Dec 12 Javascript
Webpack设置环境变量的一些误区详解
Dec 19 Javascript
原生Js 实现的简单无缝滚动轮播图的示例代码
May 10 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
[转帖]PHP世纪万年历
2006/12/06 PHP
php 批量替换程序的具体实现代码
2013/10/04 PHP
php将远程图片保存到本地服务器的实现代码
2015/08/03 PHP
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
2007/04/12 Javascript
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
JavaScript 字符串处理函数使用小结
2010/12/02 Javascript
基于jQuery的动态增删改查表格信息,可左键/右键提示(原创自Zjmainstay)
2012/07/31 Javascript
js数组去重的常用方法总结
2014/01/24 Javascript
js中把JSON字符串转换成JSON对象最好的方法
2014/03/21 Javascript
js图片上传前预览功能(兼容所有浏览器)
2016/08/24 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
Javascript农历与公历相互转换的简单实例
2016/10/09 Javascript
从0开始学Vue
2016/10/27 Javascript
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
对Vue2 自定义全局指令Vue.directive和指令的生命周期介绍
2018/08/30 Javascript
在微信小程序中使用图表的方法示例
2019/04/25 Javascript
python发送邮件的实例代码(支持html、图片、附件)
2013/03/04 Python
Python两个整数相除得到浮点数值的方法
2015/03/18 Python
在Python中使用NLTK库实现对词干的提取的教程
2015/04/08 Python
python+pyqt实现12306图片验证效果
2017/10/25 Python
python验证身份证信息实例代码
2019/05/06 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
怎么快速自学python
2020/06/22 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
Pycharm及python安装详细教程(图解)
2020/07/31 Python
PyCharm 2020.2 安装详细教程
2020/09/25 Python
日本著名的平价时尚女性购物网站:Fifth
2016/08/24 全球购物
仓库管理员岗位职责
2014/03/19 职场文书
股指期货心得体会
2014/09/13 职场文书
平面设计师岗位职责
2014/09/18 职场文书
护士长2014年度工作总结
2014/11/11 职场文书
暑期社会实践个人总结
2015/03/06 职场文书
物业保洁员管理制度
2015/08/05 职场文书
学生会主席任命书
2015/09/21 职场文书
某某店铺的开业庆典主持词范本
2019/11/25 职场文书
CentOS8.4安装Redis6.2.6的详细过程
2021/11/20 Redis