微信小程序:自定义组件传值——获取手机验证码

一:遇到的问题 通过自己自定义的组件编写的表单,发现传值不了,点击后收到的值为空。

二:创建组件 先在根目录创建components文件夹,创建img-verify文件夹(这个是我取的组件名字),在这个文件夹上点击右键新建一个component,名字依然叫做img-verify。

image.png

img-verify.wxml代码

如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以加裙485187702,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

<view class="phone" >  <view class="flex"><view class="w-label">图形验证码</view><input placeholder='请输入验证码'  maxlength="6" placeholder-style='font-size:26rpx;color:#A4A4A4;text-align:left'  class="phone_code" name="imgcode" bindinput="bindImgVerifyCodeInput" ></input><image src="{{imgVerifyCode}}" style="width:166rpx;height:64rpx;margin-top:13rpx;" bindtap="getImgVerifyCode"></image><image src="../../images/gouxuan.png" class="gouxuan_img" wx:if="{{isImgCodeCorrect}}"></image></view><view class="flex"><view class="w-label">短信验证码</view> <input  maxlength="6" type="number" name="smsCode"  class="phone_code" placeholder='请输入短信验证码'placeholder-style='font-size:26rpx;color:#A4A4A4;text-align:left'  bindinput="bindSmsVerifyCodeInput"></input><view class="code " bindtap="getSmsVerifyCode" hidden="{{got}}" data-type="0" data-phone="{{phone}}">获取验证码</view><view class="code " hidden="{{!got}}">{{second}}s 重新获取</view></view></view> 

 img-verify.json代码

{"component": true,"usingComponents": {}
}

img-verify.js代码

var api = require('../../utils/api.js')
const app = getApp()
var that
var imgVerifyCode
var smsVerifyCode
var lastGetVerifyCodeTimevar countDown = function(){var that = this    console.log('that.data.second',that.data.second)// 上一轮倒计时已经结束 if (that.data.second === 0 ){that.setData({got: false,// getSmsVerigyAgain: true})return }that.setData({got: true})var timer = setInterval(() => {if (that.data.second < 1) {clearInterval(timer)that.setData({got: false,})return }that.setData({second: --that.data.second})}, 1000)    }
var getImgVerifyCode = function (){var nowTime = Date.now()if (nowTime - lastGetVerifyCodeTime < 500){console.log('操作太快啦')return }lastGetVerifyCodeTime = nowTimeapi.applyImgVerifyCode(app,that, function success(res){// console.log(res)that.setData({imgVerifyCode: res.data.imgVerifyCode})})}function getSmsVerifyCode () {if (!imgVerifyCode) {this.triggerEvent('showTopTips','请先填写图形验证码')return 'error'}api.applySmsVerifyCode(app,that,imgVerifyCode,0,app.globalData.phone,function success(){that.setData({isImgCodeCorrect: true})that.setData({got: true,second: 60})countDown.call(that)},function fail(){that.setData({isImgCodeCorrect: false,// produce: false})setTimeout(getImgVerifyCode,1500)})}
Component({externalClasses: ['weui-cell', 'weui-cell_input', 'weui-cell__hd', 'weui-cell__bd', 'weui-cell__ft', 'weui-vcode-img', 'weui-vcode-btn'],/*** 组件的属性列表*/properties: {imgVerifyCode: {type: String},},/*** 组件的初始数据*/data: {},ready: function ( ){that = thisgetImgVerifyCode()},/*** 组件的方法列表*/methods: {bindImgVerifyCodeInput : function(e) {imgVerifyCode = e.detail.valueif (imgVerifyCode.length && !that.data.activeClass){that.setData({activeClass: 'is_bindtap'})}else if (!imgVerifyCode.length){that.setData({activeClass: ''})}},bindSmsVerifyCodeInput : e => {},// var getImgVerifyCode = function(){getImgVerifyCode: getImgVerifyCode,getSmsVerifyCode: getSmsVerifyCode}
})
module.exports = {getSmsVerifyCodeInput:function ()  {return smsVerifyCode}
}

三、我在修改邮箱的页面引用这个组件

image.png wxml代码

wxml代码

<img-verify weui-cell="weui-cell" weui-cell_input="weui-cell_input" weui-cell__hd="weui-cell__hd" weui-cell__bd="weui-cell__bd" weui-cell__ft="weui-cell__ft" weui-vcode-img="weui-vcode-img" weui-vcode-btn="weui-vcode-btn" bind:showTopTips="showTopTips"/>

js代码

var that, app = getApp(), data
var that, eitPhone, userEmail
import { getSmsVerifyCodeInput } from '../../component/img-verify/img-verify'
Page({/*** 页面的初始数据*/data: {},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {},showTopTips: function (e) {},formSubmit: function (e) {var v = e.detail.valuevar newPwd = v.password;var password = md5.hex_md5(newPwd);var email = v.email//获取短信输入的值var information = getSmsVerifyCodeInput();var data = {email: email,smsCode: information,password: password}var uri = '/staff/bindEmail.do'new http({app: app,that: that,url: uri,data: data,isNotShowErrorPage: true,loadingImmediately: true,isNotReTry: true,success: function (res) {  console.log(res)  app.globalData.userEmail =emailapp.globalData.shouldRefreshMe = truewx.navigateBack({delta: 1,duration: 1500 })wx.showToast({title: '修改成功',duration: 1500 })},fail: function (res) {}}).request()},/*** 生命周期函数--监听页面初次渲染完成*/onReady: function () {},/*** 生命周期函数--监听页面显示*/onShow: function () {},/*** 生命周期函数--监听页面隐藏*/onHide: function () {},/*** 生命周期函数--监听页面卸载*/onUnload: function () {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh: function () {setTimeout(function () {that.onLoad()wx.stopPullDownRefresh() //停止下拉刷新}, 1000);},/*** 页面上拉触底事件的处理函数*/onReachBottom: function () {},/*** 用户点击右上角分享*/onShareAppMessage: function () {}
})import { getSmsVerifyCodeInput } from '../../component/img-verify/img-verify'
这个里面中的getSmsVerifyCodeInput()方法 给到了这个页面,在修改邮箱这个页面调用这个方法,就可以获取到短信的值了。![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a229f73c503448498b54ae0e1f0b71fb~tplv-k3u1fbpfcp-watermark.image)

最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!【100%无套路免费领取】

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

8小时传疯!大厂面试真题全被大佬整理在这个小程序上了!【软件测试,建议收藏】

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础 

  全套资料获取方式:点击下方小卡片自行领取即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/176970.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是 DevOps

DevOps是一套融合软件开发&#xff08;Dev&#xff09;和 IT 运营&#xff08;Ops&#xff09;的实践&#xff0c;旨在缩短应用程序开发周期并确保以高软件质量持续交付&#xff0c;通过采用 DevOps 实践&#xff0c;您可以帮助组织更可靠、更快速、更高效地交付软件。 什么是…

一百九十八、Java——IDEA项目中有参构造、无参构造等快捷键(持续梳理中)

一、目的 由于IDEA项目中有很多快捷键&#xff0c;可以很好的提高开发效率&#xff0c;因此整理一下 二、快捷键 &#xff08;一&#xff09;快捷键生成public static void main(String[] args) {} 快捷键&#xff1a;psvm &#xff08;二&#xff09;快捷键在test中创建cn…

MacOS安装git

文章目录 通过Xcode Command Lines Tool安装(推荐)终端直接运行git命令根据流程安装先安装Command Lines Tool后再安装git 官网下载二进制文件进行安装官方国外源下载二进制文件(不推荐)国内镜像下载二进制文件(推荐)安装git 通过Xcode Command Lines Tool安装(推荐) 简单来讲C…

ubuntu(18.04)中架设HiGlass docker镜像服务,已尝试mcool、bedpe、wig格式文件

前言 使用到的软件 docker 文档 &#xff1a; https://www.docker.com/ HiGlass 文档&#xff1a;http://docs.higlass.io/higlass_docker.html#running-locally https://github.com/higlass/higlass-dockerhiglass-docker 地址&#xff1a;https://github.com/higla…

17.基干模型Swin-Transformer解读

文章目录 SWin-Transformer解读1.基础介绍关于Shifted Window based Self-Attention相对位置偏置网络整体结构和层级特征欢迎访问个人网络日志🌹🌹知行空间🌹🌹 SWin-Transformer解读 1.基础介绍 Swin-Transformer是2021年03月微软亚洲研究院提交的论文中提出的,比V…

Arduino开发

文章目录 Arduino IDE 的使用1. 使能编译以及烧录的LOG&#xff1a;2. 下载配置3. 下载 Arduino指令程序下载步骤通过下载器下载通过串口下载 关于Arduino IDE工程生成的二进制文件对比Tools-->burn bootloader 和 ArduinoISP例程 的区别自带例程 Arduino IDE 的使用 1. 使…

【发表案例】2区正刊,网络安全、智能系统领域,2个月3天录用,11天见刊,16天检索!

计算机类SCIE 【期刊简介】IF&#xff1a;4.0-5.0&#xff0c;JCR2区&#xff0c;中科院3区 【检索情况】SCIE 在检&#xff0c;正刊 【征稿领域】提高安全性和隐私性的边缘/云的智能方法的研究&#xff0c;如数字孪生等 【截稿日期】2023.11.30 录用案例&#xff1a;2个月…

SpringBoot / Vue 对SSE的基本使用

一、SSE是什么&#xff1f; SSE技术是基于单工通信模式&#xff0c;只是单纯的客户端向服务端发送请求&#xff0c;服务端不会主动发送给客户端。服务端采取的策略是抓住这个请求不放&#xff0c;等数据更新的时候才返回给客户端&#xff0c;当客户端接收到消息后&#xff0c;再…

恒驰服务 | 华为云数据使能专家服务offering之数仓建设

恒驰大数据服务主要针对客户在进行智能数据迁移的过程中&#xff0c;存在业务停机、数据丢失、迁移周期紧张、运维成本高等问题&#xff0c;通过为客户提供迁移调研、方案设计、迁移实施、迁移验收等服务内容&#xff0c;支撑客户实现快速稳定上云&#xff0c;有效降低时间成本…

IntelliJ IDEA快捷键sout不生效

1.刚下载完idea编辑器时&#xff0c;可能idea里的快捷键打印不生效。这时你打开settings 2.点击settings–>Live Templates–>找到Java这个选项&#xff0c;点击展开 3.找到sout 4.点击全选&#xff0c;保存退出就可以了 5.最后大功告成&#xff01;

物联网整体框架有哪些层面?

物联网是当前非常火热的话题&#xff0c;各个行业对物联网的关注和投入力度也很大&#xff0c;一些互联网巨头都在紧锣密鼓的布局物联网产业&#xff0c;抢占市场先机。 物联网的整体构架大致可以分为以下四个层面&#xff1a; 1.感知识别层 感知层是物联网整体架构的基础&…

基于springboot实现学生就业管理系统项目【项目源码+论文说明】

基于springboot实现学生就业管理系统演示 摘要 随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;学生就业管理系统也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;人…

【安装】自建Rustdesk Server

文章目录 RustDesk说明RustDesk优点RustDesk相关链接非Docker基于CentOSRustDesk默认程序占用端口说明 启动 hbbr 是中继服务器启动 hbbs 是ID服务器客户端配置编写启动脚本hbbr、hbbs命令详细说明 RustDesk说明 RustDesk优点 自建服务端。搭建在自己的云服务器就相当于独享高…

antv/g6 节点、及自定义节点

节点 AntV G6 中内置节点支持的通用属性通常包括以下几个&#xff1a; id&#xff1a;节点的唯一标识符。 x 和 y&#xff1a;节点的位置坐标。 label&#xff1a;节点的标签文本。 style&#xff1a;节点的样式&#xff0c;用于设置节点的外观&#xff0c;可以包括填充颜色…

windows系统卸载mysql

1. win r 输入 control 打开控制面板 2.搜索mysql&#xff0c;删除搜索内容 3.删除相应路径下的mysql文件夹C:\Program Files C:\ProgramData 4.删除注册表&#xff0c;win r 输入 regedit 打开注册表 5.搜索MySql 删除掉 完成

高等数学啃书汇总重难点(十)重积分

方法性的一章&#xff0c;看着唬人&#xff0c;实际上定积分学得熟练&#xff0c;就可以很轻松的掌握这一章的内容&#xff0c;重点在于计算各种坐标下的二重或三重积分~ 1.几何意义 2.定义 3.性质 4.直角坐标计算二重积分 5.极坐标计算二重积分 6.三重积分 7.重积分的应用

国际物流常见风险如何规避_箱讯科技

外贸物流是国际贸易的重要环节&#xff0c;其管理和效率的高低直接影响着贸易的成本和效益。因此&#xff0c;外贸企业应该重视物流的组织和管理&#xff0c;提高物流运作的效率。 国际物流基础知识 01什么是“双清包税”和“双清不包税” 双清包税上门又叫双清包税到门&…

论文翻译-ImageNet Classification with Deep Convolutional Neural Networks

[toc] 前言 AlexNet是是引领深度学习浪潮的开山之作&#xff0c;即使是我们现在进入了ChatGPT时代&#xff0c;这篇论文依然具有一定的借鉴意义。AlexNet的作者是多伦多大学的Alex Krizhevsky等人。Alex Krizhevsky是Hinton的学生。网上流行说 Hinton、LeCun和Bengio是神经网…

京东h5st逆向 h5st代码之拓展

知识点 node安装模块 crypto-js JavaScript 中的加密库 则更偏向于消息摘要算法、对称加密和简单的哈希函数&#xff0c;支持 AES、DES、SHA-1、HMAC 等诸多算法&#xff0c;适用于对客户端本地存储的数据进行加密、散列或签名处理等场景 axios 一旦安装成功&#xff0c;我们就…

prometheus服务发现

Consul简介 ◼ 一款基于golang开发的开源工具&#xff0c;主要面向分布式&#xff0c;服务化的系统提供服务注册、服务发现和配置管理 的功能 ◼ 提供服务注册/发现、健康检查、Key/Value存储、多数据中心和分布式一致性保证等功能 部署 curl -LO https://releases.hashicorp…