在项目开发中遇到发送验证码的问题,为了防止用户多次点击发送按钮,在用户点击发送之后进行倒计时,当倒计时结束后,才可再一次点击。我是通过定时器来实现的,有更好的方法的话,欢迎大家分享。
一、js代码
data:{
num:60,
time:60,
}
resend(){
var that = this
if(that.data.time!==0){
var count = setInterval(function() {
var newtime=that.data.time--
that.setData({
num:newtime
})
// that.data.time=time1
if(that.data.time===0){
that.setData({
judge:false,
sent:true,
time:60,
num:60
})
clearTimeout(count )
}
}, 1000);
}
},
二、wxml代码
<block wx:if="{{isShowConfirm}}">
<view class='toast-box'>
<view class='showToast'>
<view class='toast-title'>
<text>请输入优惠券密码</text>
<text bindtap="close" style="float: right; margin-right: 5%;">取消</text>
</view>
<view class='toast-main'>
<view class='toast-input'>
<input maxlength="6" type='text' placeholder='输入券使用码' bindinput='setValue' bindblur="_bindblur"></input>
</view>
<view class='button2'>
<button disabled="{{confirm}}" bindtap='confirmAcceptance'>确认</button>
</view>
</view>
<view wx:if="{{sent}}" bindtap="resend" class="official">发送密码至客户<text>公众号</text></view>
<view wx:else class="official" style="background: #7F7F7F;">发送密码至客户<text>公众号<text wx:if="{{judge}}">({{num}}s)</text></text></view>
<view class="notes">
<view style="color: red;">注1:用户需要在72h内与公众号有过交互</view>
<view style="color: red;">注2:用户微信需要绑定会员卡</view>
<view>交互操作举例(下方任意一项均可):</view>
<view>1、关注公众号</view>
<view>2、点击公众号下方任意菜单</view>
<view>3、向公众号发送任意消息</view>
</view>
</view>
</view>
</block>