兄台,你这个代码读起来有些不太方便,你可以多打一些log,在拿到input值的时候,加密之前,加密之后都打印,前台可以看到,看是哪出了问题
input输入框输入姓名信息后传给后端,最后一位字消失了?[图片] [图片] [图片] [图片] 问题描述 1.姓名总是无缘无故少最后一字 2.其间有加密算法,检查过没问题 3.测试时问题并没有重现 4.大多是安卓机出的问题 js代码: const util = require('../../utils/util.js') const config = require('../../config.js') var Aes = require('../../common/public.js'); var app = getApp(); Page({ /** * 页面的初始数据 */ data: { disabled: false, //按钮是否禁用 phone: '', //获取到的手机栏中的值 name: '', //获取姓名栏的值 data: '', idCard: '', //获取身份证栏的值 password: '', //获取密码栏的值 success: false, state: '', key: '', districtList: [{ district: '龙岗区', districtId: '201' }], districtIndex: 0, districtId: '201', district: '龙岗区', streetList: [], streetIndex: 0, streetId: '', street: '', communityList: [], communityIndex: 0, communityId: '', community: '', check: 0, streetIsClick: false, communityIsClick: false }, /** * 获取input框中的值 */ return_home: function (e) { wx.navigateTo({ url: '/pages/login/login', }) }, /** 姓名 */ handleInputName: function (e) { const self = this this.setData({ name: e.detail.value }) if (e.detail.value != "") { self.setData({ flagName: 'false', nameType: 'success' }) } else { self.setData({ flagName: 'true', nameType: 'warn' }) } }, /** 身份证号 */ handleInputIdCode: function (e) { const self = this this.setData({ idCard: e.detail.value }) if ((/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(e.detail.value))) { self.setData({ flag: 'false', iconType: 'success' }) } else { self.setData({ flag: 'true', iconType: 'warn' }) } }, /** 电话号码 */ handleInputPhone: function (e) { const self = this; this.setData({ phone: e.detail.value }) if ((/^[1][3,4,5,7,8,9,2,6,0][0-9]{9}$/.test(e.detail.value))) { self.setData({ flagMobile: 'false', MobileType: 'success' }) } else { self.setData({ flagMobile: 'true', MobileType: 'warn' }) } }, /** 密码*/ handleNewChanges: function (e) { const { key, data } = this.data const self = this; this.setData({ key, data, password: e.detail.value }) if (e.detail.value.length >= 8 && e.detail.value.length <= 16) { self.setData({ flagPassword: 'false', passwordType: 'success' }) } else { self.setData({ flagPassword: 'true', passwordType: 'warn' }) } }, /** 确认密码*/ handleNewChangesAgain: function (e) { const { key, data } = this.data; const self = this; this.setData({ NewChangesAgain: e.detail.value }) if (this.data.password == e.detail.value && e.detail.value != "") { self.setData({ flagAgain: 'false', againType: 'success' }) } else { self.setData({ flagAgain: 'true', againType: 'warn' }) } }, /**选择区 */ bindDistrictChange: function (e) { this.setData({ //districtId: this.data.districtList[e.detail.value].id, districtId: '201', districtIndex: e.detail.value, district: '龙岗区' }); this.getStreetList(); }, /**选择街道 */ bindStreetChange: function (e) { console.log('picker发送选择改变,携带下标为', e.detail.value); console.log('picker发送发生改变,携带值为', this.data.streetList[e.detail.value].name); this.setData({ streetId: this.data.streetList[e.detail.value].id, streetIndex: e.detail.value, street: this.data.streetList[e.detail.value].name, streetIsClick: true }) this.getCommunityList(); }, /**选择社区 */ bindCommunityChange: function (e) { this.setData({ communityId: this.data.communityList[e.detail.value] ? this.data.communityList[e.detail.value].id : null, communityIndex: e.detail.value, community: this.data.communityList[e.detail.value] ? this.data.communityList[e.detail.value].name : null, communityIsClick: true }) }, //注册协议 greenCheck: function (e) { this.setData({ check: e.detail.value.length }) if (e.detail.value == "") { console.log("空欧诺个空") console.log(e.detail.value); } else { console.log("不空不空") } }, submit: function (e) { var that = this if (this.data.name == '') { wx.showToast({ title: '请输入姓名', icon: 'none', duration: 2000, }) } else if (this.data.idCard == '') { wx.showToast({ title: '请输入身份证号码', icon: 'none', duration: 2000 }) } else if (!(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(this.data.idCard))) { wx.showToast({ title: '身份证号码不正确', icon: 'none', duration: 2000 }) } else if (this.data.phone == '') { wx.showToast({ title: '请输入手机号', icon: 'none', duration: 2000 }) } else if (!(/^[1][3,4,5,7,8,9,6,0][0-9]{9}$/.test(this.data.phone))) { wx.showToast({ title: '请输入合法的手机号', icon: 'none', duration: 2000 }) } else if (this.data.password == '') { wx.showToast({ title: '请输入密码', icon: 'none', duration: 2000 }) return } else if (!(/^[a-zA-Z0-9]{8,16}$/.test(this.data.password))) { wx.showToast({ title: '密码长度为8-16位', icon: 'none', duration: 2000 }) return } else if (this.data.NewChangesAgain != this.data.password) { wx.showToast({ title: '两次密码不一致', icon: 'none', duration: 2000 }) return } else if (this.data.check == 0) { console.log("是否勾选" + this.data.check); wx.showToast({ title: '您还未同意用户注册协议', icon: 'none', duration: 2000 }) } else if (!this.data.streetIsClick || !this.data.communityIsClick) { wx.showToast({ title: '您还未选择所属街道和社区', icon: 'none', duration: 2000 }) } else { /**所有信息正确,开始注册 */ console.log("注册成功"); var data = { idCard: Aes.Encrypt(this.data.idCard), phone: Aes.Encrypt(this.data.phone), name: Aes.Encrypt(this.data.name), password: Aes.Encrypt(this.data.password), district: this.data.district, districtId: this.data.districtId, street: this.data.street, streetId: this.data.streetId, community: this.data.community, communityId: this.data.communityId, type: 'USER' }; // console.log('数据1212数据' + JSON.stringify(data)); wx.showModal({ title: '个人信息确认', content: '姓名:' + this.data.name + '\r\n身份证:' + this.data.idCard + '' + '\r\n手机号:' + this.data.phone + '' + '\r\n所属街道:' + this.data.streetList[this.data.streetIndex].name + '\r\n所属社区:' + this.data.communityList[this.data.communityIndex].name, confirmText: "确定", cancelText: "取消", success: function (res) { console.log(res); if (res.confirm) { wx.showLoading({ title: '正在发送请求', success: function () { app.postFormRequest(config.registerUrl, data).then(function (res) { if (res.data.errorCode == 400003) { wx.showModal({ title: '用户已存在,请重新注册', icon: 'loading', duration: 2000, }) } else { wx.showModal({ title: '注册成功,自动登录', icon: 'loading', duration: 2000, success: function () { var loginData = { username: data.phone, password: data.password, }; wx.showLoading({ title: '正在登录中...', mask: true, success: function () { app.postFormRequest(config.loginUrl, loginData).then(function (result) { app.postFormRequest(config.getMyInfoUrl).then(function (result) { // //获取用户信息 app.globalData.userInfo = result.data; wx.switchTab({ url: '../index/index', }) }); }); } }); } }); } }) } }) } else { } } }); } }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }, onLoad: function (event) { var that = this; wx.showToast({ title: '数据加载中', icon: 'loading', duration: 1500 }) that.getStreetList(); }, getStreetList: function () { var self = this; app.postRequest(config.getCommonDistrictListUrl, { "type": "DISTRICT" }).then(function (result) { var resultList = result.data.data.rows; self.data.districtId = resultList[0].id; app.getRequest(config.getCommonOrganizationsByParentId + '/' + self.data.districtId).then(function (result) { var resultList = result.data; var streetId = resultList[0].id; var street = resultList[0].name; self.setData({ streetList: resultList, streetId: streetId, street: street }); self.getCommunityList(); }); }); }, getCommunityList: function () { var self = this; app.getRequest(config.getCommonOrganizationsByParentId + '/' + self.data.streetId).then(function (result) { if (result.data.length > 0) { var resultList = result.data; var communityId = resultList[0].id; var community = resultList[0].name; self.setData({ communityList: resultList, communityId: communityId, community: community, communityIndex: 0 }); } else { self.setData({ communityList: [], communityId: '' }); } }); }, })
2019-02-01不知道兄台找的是不是这个https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115
微信公众号开发微信自带分享功能怎么传参数? 需求: 从微信分享进入的XX需要隐藏某些东西,所以需要区别开 是从原入口进入的还是通过分享进入的!
2019-02-01生成带二维码的页面路径,需要是线上小程序已经有的页面路径,你可以看看是不是这个原因
小程序后台的"生成小程序码"如何带参数?在小程序后台--工具--生成小程序码功能,首先添加了APPID 添加后再添加小程序页面路径时带上了参数, 结果报错, 是不能带参数吗? 如下图 [图片]
2019-02-01你是不是说右边滚动条的问题,用定位试试。如果是右边滚动条的问题,你可以在页面中写个组件,把上面带滚动条的用scroll-view 下面用button,scroll-view的高度自适应用js计算一下,应该可以解决,好像有点麻烦了
自定义tabbar,如何像原生那样,当首页向下滑动时,不穿透tabbar- 当前 Bug 的表现(可附上截图) [图片] 自定义tabbar,如何像原生那样,当首页向下滑动时,不穿透tabbar,而是到上沿部分停止向下滑动
2019-02-01这个应该是小程序的机制,跟vue等其他框架不同的地方
在使用按钮改变文字时遇到的问题- 需求的场景描述(希望解决的问题) <!-- 下面为wxml文件中的按钮代码 --> [代码]<[代码][代码]button[代码] [代码] [代码][代码]type[代码][代码]=[代码][代码]"warn"[代码][代码] [代码][代码]bindtap[代码][代码]=[代码][代码]'onTap'[代码][代码]>[代码][代码] [代码][代码]{{btntext}}[代码][代码]</[代码][代码]button[代码][代码]>[代码] {{text}} // 下面为js文件中的代码 data: { btntext: "hello", text: "this is text", }, [代码]onTap: [代码][代码]function[代码] [代码]() { [代码][代码] [代码][代码]this[代码][代码].data.text = [代码][代码]"change" [代码][代码] [代码][代码]console.log([代码][代码]this[代码][代码].data.text) [代码][代码] [代码][代码]// this.setData({text:"change"})[代码] [代码] [代码][代码]}[代码] 在使用button的bindtap绑定onTap函数后,js中添加上述代码后,点击按钮后我认为按钮下方的文字应该改变成change,但是使用赋值方法(也就是onTap函数未注释的方法)则不能改变文字的值,然而使用setData方法可以改变文字的值。想向大家请教一下原因,谢谢大家!
2019-02-01这种需求的话,可以自己写个组件,比较适用!
wx.showModal里面的content可以不居中显示吗[代码]wx.showModal({[代码][代码] [代码][代码]title: '提示',[代码][代码] [代码][代码]content: '1、xxxxxxxxx\n'+"2、xxxxxxxxxxxxx",[代码][代码] [代码][代码]success(res) {[代码][代码] [代码][代码]if (res.confirm) {[代码][代码] [代码][代码]console.log('用户点击确定')[代码][代码] [代码][代码]} else if (res.cancel) {[代码][代码] [代码][代码]console.log('用户点击取消')[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码]})[代码] 今天用wx.showmodal这个函数的时候,在content弹出里的内容,可以不居中显示吗,我记得以前的微信版本里,一开始不是居中显示的,后来就居中显示了,对于我的某些功能要弹出来提示用户注意1、xxxxxxxxxx,2、xxxxxxx,3、xxxxxxxxxxxxxx几点内容的时候,由于长度不一,居中显示了好难看,有没有解决办法,求教
2019-01-31微信给出的是25分钟,通常我都是上传体验版,这个只要体验版本不变,就会一直存在,如果版本变了,从新扫码即可,不用换新的,很方便
请问下各位调试用的小程序一般能用多久呢?如题,就是扫了开发工具的调试码之后,保存在手机的小程序能用多久呢?
2019-01-30官方是在模版中使用的,你是在button组件中使用的可能这个语法不支持组件,只支持模版,你换成模版试试
事件 data- 怎么传对象到逻辑层[图片] data- 不能传对象吗,我跟api里有什么区别吗 [图片]
2019-01-30楼主语法错误了,可以把this.setData 放在onShow里面执行
js基础问题[图片] [图片] 如图,我在about页面内写两句话,主要就是想通过{{}}调用msg变量 然后在屏幕上面显示其内容“Hello World”,是在.wxml和.js里面各添加一句这样的话吗? <text>{{msg}}</text> this.setData({ msg: 'Hello World' }) 但是为什么提示错误呢?是我添加的位置不对吗?我应该怎么添加呢?
2019-01-30小程序好像只支持前面那种语法,vue支持后面语法
bindinput和bind:input- 当前 Bug 的表现(可附上截图) - 预期表现 使用bindinput 和 bing:input应该说都是能获取键入值的,但是后者无法获取,仅前者可以获取 - 复现路径 - 提供一个最简复现 Demo
2019-01-29