在此描述一下前端实现效果的思路:当用户输入完手机号,点击发送验证码时候,要判断现在能否点击(能点击:用户手机号正确且不在发送验证码过程中;不能点击:用户输入的手机号不对或者已经在发送验证码过程中),然后做相应的处理。
wxml代码:
<form bindsubmit='formsubmit'> <view class='people_info_box'> <view class='people_info_item'> <view class='people_info_box_name'> <view>姓名</view> </view> <view class='people_info_box_cont'> <input type='text' value='哈喽'></input> </view> </view> <view class='people_info_item'> <view class='people_info_box_name'> <view>手机号</view> </view> <view class='people_info_box_cont'> <input type='number' placeholder='输入手机号' maxlength='11' bindinput='input_val'></input> </view> </view> <view class='people_info_item'> <view class='people_info_box_name'> <view>验证码</view> </view> <view class='people_info_box_contsinge'> <input type='text' value='' placeholder='输入验证码' class='single'></input> </view> <view class='people_info_box_code'> <text bindtap='check'>{{show_get_code}}</text> </view> </view> </view> <button class='wc_btn' name="wc_btn" form-type='submit'>提交</button> </form>
Page({ data: { login_member: '', //输入的手机号 login_code: null, //传过来的验证码 input_login_code: '', //用户输入的验证码 get_code_status: true, //是否能点击获取验证码的状态判断 show_get_code: '获取验证码', get_code_time: 60 }, onLoad: function (options) { }, input_val:function(e){ var userphone = e.detail.value; this.setData({ login_member: userphone }) }, check: function () { if (!this.data.get_code_status) { wx.showToast({ title: '正在获取', icon: 'loading', duration: 1000 }) return; } else { if (this.data.login_member.length == 11) { var myreg = /^1d{10}$/; if (!myreg.test(this.data.login_member)) { wx.showToast({ title: '请输入正确的手机号', icon: 'loading', duration: 1000 }); return; } else { this.get_code(); } } else { wx.showToast({ title: '请输入完整手机号', icon: 'loading', duration: 1000 }) return; } } }, get_code: function () { var that = this; wx.request({ url:'', data: { mobile: that.data.login_member }, success: function (res) { if (res.data.status == 1) { var timer = setInterval(function () { if (that.data.get_code_time > 0) { // console.log(that.data.get_code_time); that.setData({ get_code_time: that.data.get_code_time - 1, show_get_code: '剩余' + (that.data.get_code_time - 1) + '秒', get_code_status: false }); } else { clearInterval(timer); that.setData({ get_code_time: 60, show_get_code: '获取验证码', get_code_status: true }); } }, 1000); that.setData({ login_code: res.data.data.code //后台返回的验证码,可以做判断用 }); } else { wx.showToast({ title: res.data.message, icon: 'loading', duration: 1000 }); } }, fail: function (res) { wx.showToast({ title: '请求失败', icon: 'loading', duration: 1000 }); } }); } })