html:
<!--pages/forgotpwd/forgotpwd.wxml--><view class="container"> <form bindsubmit='submit_email' wx:if="{{form_index == 0}}"> <label>找回密码:第1步</label> <view class="section"> <input name="no" type='number' placeholder-class='small' placeholder='请输入学号' /> </view> <view class="section"> <input name="email" placeholder-class='small' placeholder='请输入绑定的邮箱' /> </view> <button type='primary' placeholder-class='small' formType="submit" >下一步</button> </form> <form bindsubmit='submit_password' wx:else> <label>找回密码:第2步</label> <view class="section"> <view class="left"> <input name="pwd" password="{{mask}}" placeholder-class='small' placeholder='输入新密码' /> </view> <view class="right"> <switch bindchange="switchChange"/> </view> </view> <view class="section"> <view class="left"> <input name="validcode" type='number' placeholder-class='small' placeholder='输入邮件中的验证码'/> </view> <view class="right"> <text style="color:#aaa">剩余:{{second}}秒</text> </view> </view> <button type='primary' formType="submit" disabled="{{disabled}}" >提交</button> </form></view>js:
// pages/forgotpwd/forgotpwd.jsconst app = getApp();function countdown(that) { var second = that.data.second if (second == 0) { that.setData({ disabled: true }); return; } var time = setTimeout(function () { that.setData({ second: second - 1 }); countdown(that); } , 1000)}Page({ /** * 页面的初始数据 */ data: { form_index: 0, no: null, second: 30, disabled: false, mask: true }, switchChange: function (e) { // console.log(e.detail.value) this.setData({ mask: !e.detail.value }) }, //提交邮箱 submit_email: function (e) { var no = e.detail.value.no; var email = e.detail.value.email; if (email == null || email == '') { wx.showToast({ title: '请输入邮箱', icon: 'none', duration: 2000 }) return; } wx.showLoading({ title: '网络请求中...', }) wx.request({ url: 'https://www.lishuming.top/pj/index.php/student/api/forgotpwd',(接口) data: { no: no, email: email }, method: "POST", header: { 'content-type': 'application/x-www-form-urlencoded' }, success: (res) => { wx.hideLoading(); // console.log(res.data); if (res.data.error) { wx.showToast({ title: res.data.msg, icon: 'none', duration: 2000 }) } else { this.setData({ no: no, second: res.data.expire }); countdown(this); wx.showToast({ title: res.data.msg, icon: 'none', duration: 2000 }) setTimeout(() => { this.setData({ form_index: 1 }); }, 2000) } } }) }, //重设密码 submit_password: function (e) { console.log(e); var validcode = e.detail.value.validcode; var pwd = e.detail.value.pwd; if (validcode == '' || validcode == null || pwd == '' || pwd == null) { wx.showToast({ title: '验证码和密码不能为空', icon: 'none', duration: 2000 }) } else { wx.request({ url: 'https://www.lishuming.top/pj/index.php/student/api/initpassword', method: 'POST', data: { no: this.data.no, validcode: validcode, pwd: pwd }, header: { 'content-type': 'application/x-www-form-urlencoded' }, success: (res) => { // console.log(res.data); if (res.data.error) { wx.showToast({ title: res.data.msg, icon: 'none', duration: 2000 }) } else { wx.showToast({ title: res.data.msg, icon: 'success', duration: 2000 }) setTimeout(() => { wx.navigateBack({ delta: 1 }) }, 2000) } } }) } }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }})小程序














