热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信小程序开发中走过的坑(二)

跟上微信小程序开发中走过的坑(一),继续开车。》》》遇到的坑(3)注册页面的实现需求:用户点击注册按钮,进入注册页面,输入注册信息,完成注册动作。动画演示:代码实现:re

跟上微信小程序开发中走过的坑(一),继续开车。


》》》遇到的坑

(3)注册页面的实现
需求:用户点击注册按钮,进入注册页面,输入注册信息,完成注册动作。
动画演示:
这里写图片描述
代码实现:

register.wxml


<view wx:if="
{{step == 1}}" class="container">
<view class="field">
<input name="cellphone" bindinput="input_acceptVal" placeholder-class="placeholder" placeholder="输入手机号/E-mail" />
view>

<view class="field second_input inputCode">
<input class='identifyCode' type="number" bindinput="input_identifyCode" placeholder-class="placeholder" placeholder="输入验证码" />
<view class="view_identifyCode">
<button bindtap="reqIdentifyCode" disabled="{{identifyCode_btn}}" class="reqIdentifyCode">{{button_reqIdentifyCode}}button>
view>
view>
<view class="text nextStep">如手机获取不到验证码,请用E-mail注册view>
<view class='bottom'>
<button style="background:black;margin-top:6%;width: 80%;" type="primary" size="default" bindtap="nextStep_code">下一步button>
view>
<view class="text login">已经是快拍会员?view>
<button style="background:#ff9966;margin-top:5%;width: 80%;" type="primary" size="default" bindtap="login">登录button>
view>


<view wx:if="{{step==2}}" class="container">
<view class="avatar">
<image src="
{{avatarUrl}}" bindtap="chooseAvatar">image>
view>
<view class="text nextStep">温馨提示:注册请先上传头像view>
<view class="field nickname">
<input bindchange="input_nickname" placeholder-class="placeholder" placeholder="昵称" />
view>
<view class="field password">
<input bindchange="input_password" placeholder-class="placeholder" placeholder="密码" password/>
view>
<view class="field second_input">
<input bindchange="input_rePassword" placeholder-class="placeholder" placeholder="确认密码" password/>
view>
<button style="background:black;margin-top:20%;width: 80%;" type="primary" size="default" bindtap="nextStep_nickname">下一步button>
view>

register.js(部分)

data: {
avatarUrl: '',
identifyCode_btn: true,
button_reqIdentifyCode: '获取验证码'
},
onLoad: function (options) {
this.setData({
step: 1
})
},
// 输入手机号或邮箱
input_acceptVal: function (e) {
acceptVal = e.detail.value;
if (common.checkIsNotNull(acceptVal)) {
this.setData({
acceptVal: acceptVal,
identifyCode_btn: false
})
} else {
this.setData({
identifyCode_btn: true
})
}
},

// 获取验证码按钮动作
reqIdentifyCode: function (e) {
var that = this;
var countdown = 60;
var mobile = /^(13[0-9]|15[0-9]|17[0-9]|18[0-9])\d{8}$/;
var email = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

// 校验手机或邮箱
if (!mobile.test(acceptVal) && !email.test(acceptVal)) {
common.showTip("请填写正确的手机号码或邮箱", "loading", 1000);
} else {
this.setData({
button_reqIdentifyCode: '发送中'
})
// 获取验证码
wx.request({
url: app.globalData.server,
data: {
accept: this.data.acceptVal
}
},
method: "POST",
success: function (res) {
console.log(res)
// 结果不为空
if (common.checkIsNotNull(res)) {
common.showTip(res.data.msg, "loading", 1000);
if (res.data.code == 100 && countdown > 0) {
interval = setInterval(function () {
that.setData({
button_reqIdentifyCode: '重新获取(' + countdown + 's)'
});
countdown--;

if (countdown <= 0) {
countdown = -1
that.setData({
button_reqIdentifyCode: '获取验证码'
});
clearInterval(interval)
}
}, 1000)
} else {
that.setData({
button_reqIdentifyCode: '获取验证码'
});
}
}
},
fail: function () {
common.showTip("请求失败", "loading", 1000);
}
})
}
}

(4)登录功能,后台获取openid
需求:用户授权,获取用户信息及openid;用户登录后,将微信体系和自身平台体系的用户绑定。
参考:微信小程序之用户数据解密(七),讲的很详细,分析很到位。
补充:
①在调用wx.login接口时,会弹出微信自带的授权页面,如果用户拒绝授权,是获取不到微信体系的用户信息,代码实现中默认用户已授权;
②要获取unionId,需绑定开放平台才行。

也可关注我的微信公众号『TyronToCoder』,一起交流学习。
这里写图片描述


推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 【MicroServices】【Arduino】装修甲醛检测,ArduinoDart甲醛、PM2.5、温湿度、光照传感器等,数据记录于SD卡,Python数据显示,UI5前台,微服务后台……
    这篇文章介绍了一个基于Arduino的装修甲醛检测项目,使用了ArduinoDart甲醛、PM2.5、温湿度、光照传感器等硬件,并将数据记录于SD卡,使用Python进行数据显示,使用UI5进行前台设计,使用微服务进行后台开发。该项目还在不断更新中,有兴趣的可以关注作者的博客和GitHub。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 小程序自动授权和手动接入的方式及操作步骤
    本文介绍了小程序支持的两种接入方式:自动授权和手动接入,并详细说明了它们的操作步骤。同时还介绍了如何在两种方式之间切换,以及手动接入后如何下载代码包和提交审核。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
author-avatar
傻咾厷叫我洪儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有