- textarea的提示信息placeholder在IOS和Android不统一
textarea多行文本输入框里的placeholder提示信息在IOS和Android真机上显示不一样,无法统一样式,用户体验不好。 [代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"wrap"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]form[代码] [代码]bindsubmit[代码][代码]=[代码][代码]"formSubmit"[代码] [代码]class[代码][代码]=[代码][代码]"formSubmit"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"clearFix"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]text[代码][代码]>联系人</[代码][代码]text[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]input[代码] [代码]type[代码][代码]=[代码][代码]"text"[代码] [代码]name[代码][代码]=[代码][代码]"contact"[代码] [代码]placeholder-style[代码][代码]=[代码][代码]"font-size:16px;color:#ccc;"[代码] [代码]placeholder[代码][代码]=[代码][代码]"请填写联系人"[代码] [代码]value[代码][代码]=[代码][代码]""[代码] [代码]/>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"clearFix"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]text[代码][代码]>联系电话</[代码][代码]text[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]input[代码] [代码]type[代码][代码]=[代码][代码]"number"[代码] [代码]name[代码][代码]=[代码][代码]"mobile"[代码] [代码]placeholder-style[代码][代码]=[代码][代码]"font-size:16px;color:#ccc;"[代码] [代码]placeholder[代码][代码]=[代码][代码]"请填写联系电话"[代码] [代码]value[代码][代码]=[代码][代码]""[代码] [代码]/>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"clearFix"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]text[代码][代码]>联系邮箱</[代码][代码]text[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]input[代码] [代码]type[代码][代码]=[代码][代码]"text"[代码] [代码]name[代码][代码]=[代码][代码]"email"[代码] [代码]placeholder-style[代码][代码]=[代码][代码]"font-size:16px;color:#ccc;"[代码] [代码]placeholder[代码][代码]=[代码][代码]"请填写联系邮箱"[代码] [代码]value[代码][代码]=[代码][代码]""[代码] [代码]/>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"clearFix"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]text[代码][代码]>需求描述</[代码][代码]text[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]textarea[代码] [代码]style[代码][代码]=[代码][代码]"height:36px;"[代码] [代码]maxlength[代码][代码]=[代码][代码]"300"[代码] [代码]name[代码][代码]=[代码][代码]"note"[代码] [代码]placeholder-style[代码][代码]=[代码][代码]"font-size:16px;color:#ccc;"[代码] [代码]placeholder[代码][代码]=[代码][代码]"请简要描述您的需求,我们的公关服务人员将尽快与您联系"[代码] [代码]auto-height [代码][代码]value[代码][代码]=[代码][代码]""[代码] [代码]/>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"btn"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]button[代码] [代码]formType[代码][代码]=[代码][代码]"submit"[代码] [代码]type[代码][代码]=[代码][代码]"warn"[代码] [代码]hover-class[代码][代码]=[代码][代码]"none"[代码][代码]>我要定制</[代码][代码]button[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]form[代码][代码]>[代码][代码]</[代码][代码]view[代码][代码]>[代码] [代码].wrap{[代码][代码] [代码][代码]height[代码][代码]: [代码][代码]auto[代码][代码];[代码][代码] [代码][代码]padding[代码][代码]: [代码][代码]0[代码] [代码]36[代码][代码]rpx;[代码][代码] [代码][代码]border-top[代码][代码]: [代码][代码]1px[代码] [代码]solid[代码] [代码]#e0e0e0[代码][代码];[代码][代码] [代码][代码]border-bottom[代码][代码]: [代码][代码]none[代码][代码];[代码][代码]}[代码][代码].clearFix::after{[代码][代码] [代码][代码]content[代码][代码]: [代码][代码]""[代码][代码];[代码][代码] [代码][代码]display[代码][代码]: [代码][代码]block[代码][代码];[代码][代码] [代码][代码]clear[代码][代码]: [代码][代码]both[代码][代码];[代码][代码]}[代码][代码]view{[代码][代码] [代码][代码]/* display: flex;*/[代码][代码] [代码][代码]border-bottom[代码][代码]: [代码][代码]1px[代码] [代码]solid[代码] [代码]#f5f5f5[代码][代码];[代码][代码]}[代码][代码]text{[代码][代码] [代码][代码]float[代码][代码]:[代码][代码]left[代码][代码];[代码][代码] [代码][代码]width[代码][代码]: [代码][代码]150[代码][代码]rpx;[代码][代码] [代码][代码]font-size[代码][代码]: [代码][代码]32[代码][代码]rpx;[代码][代码] [代码][代码]letter-spacing[代码][代码]: [代码][代码]2[代码][代码]rpx;[代码][代码] [代码][代码]line-height[代码][代码]: [代码][代码]90[代码][代码]rpx;[代码][代码]}[代码][代码]input{[代码][代码] [代码][代码]float[代码][代码]:[代码][代码]left[代码][代码];[代码][代码] [代码][代码]width[代码][代码]: [代码][代码]528[代码][代码]rpx;[代码][代码] [代码][代码]height[代码][代码]: [代码][代码]90[代码][代码]rpx;[代码][代码] [代码][代码]line-height[代码][代码]: [代码][代码]90[代码][代码]rpx;[代码][代码] [代码][代码]font-size[代码][代码]: [代码][代码]32[代码][代码]rpx;[代码][代码] [代码][代码]font-family[代码][代码]: [代码][代码]"Microsoft YaHei"[代码][代码];[代码][代码]}[代码][代码].title{[代码][代码] [代码][代码]height[代码][代码]: [代码][代码]auto[代码][代码];[代码][代码] [代码][代码]min-height[代码][代码]: [代码][代码]40[代码][代码]rpx;[代码][代码] [代码][代码]line-height[代码][代码]: [代码][代码]40[代码][代码]rpx;[代码][代码] [代码][代码]margin[代码][代码]: [代码][代码]0[代码][代码];[代码][代码] [代码][代码]padding-top[代码][代码]: [代码][代码]26[代码][代码]rpx;[代码][代码]}[代码][代码]textarea{[代码][代码] [代码][代码]float[代码][代码]:[代码][代码]left[代码][代码];[代码][代码] [代码][代码]width[代码][代码]: [代码][代码]528[代码][代码]rpx;[代码][代码] [代码][代码]min-height[代码][代码]: [代码][代码]416[代码][代码]rpx;[代码][代码] [代码][代码]line-height[代码][代码]: [代码][代码]52[代码][代码]rpx;[代码][代码] [代码][代码]/*margin-top: 10rpx;*/[代码][代码] [代码][代码]padding-top[代码][代码]: [代码][代码]10[代码][代码]rpx;[代码][代码] [代码][代码]font-size[代码][代码]: [代码][代码]32[代码][代码]rpx;[代码][代码]}[代码][代码].btn{[代码][代码] [代码][代码]margin-top[代码][代码]: [代码][代码]73[代码][代码]rpx;[代码][代码] [代码][代码]justify-[代码][代码]content[代码][代码]: [代码][代码]center[代码][代码];[代码][代码] [代码][代码]border[代码][代码]: [代码][代码]none[代码][代码];[代码][代码]}[代码][代码].btn button{[代码][代码] [代码][代码]font-size[代码][代码]: [代码][代码]28[代码][代码]rpx;[代码][代码]}[代码] 在开发者工具上是这样显示的 [图片] 在Android真机上是这样的 [图片] [图片] 在IOS上是这样的 [图片] [图片] 三个工具三种不同的显示效果,无法统一,还有placeholder-style的样式行高不起作用,我没有用placeholder-class类去指定placeholder的样式
2017-07-19 - 苹果6 plus onLoad获取不到数据
开发小程序遇到一个bug,在苹果6 plus上(IOS系统10.1.1,微信6.5.7),在首页下订单传了两个值到订单页,订单页在onLoad的时候获取不到首页传过来的值,console.log(this)打印出来的只有data(真机上)没有options,开发者工具上没问题,后来我升级了微信版本(6.5.10)就没问题了,在6s plus上也没问题(IOS 10.3.2, 微信 6.5.9); [代码] [代码] [代码] [代码] [代码]apply:[代码][代码]function[代码][代码](e){ [代码] [代码] [代码][代码]var[代码] [代码]that = [代码][代码]this[代码][代码];[代码][代码] [代码][代码]var[代码] [代码]token = wx.getStorageSync([代码][代码]'token'[代码][代码]);[代码][代码] [代码][代码]var[代码] [代码]product_type = e.currentTarget.dataset.type[代码][代码] [代码][代码]if[代码][代码](token == [代码][代码]""[代码][代码]){[代码][代码] [代码][代码]wx.navigateTo({[代码][代码] [代码][代码]url: [代码][代码]"userlogin"[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码]else[代码][代码]{[代码][代码] [代码][代码]wx.request({[代码][代码] [代码][代码]url: app.urls + [代码][代码]'api/applet/v1/promotion/service'[代码][代码],[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]token: token,[代码][代码] [代码][代码]product_type: product_type[代码][代码] [代码][代码]},[代码][代码] [代码][代码]header: {[代码][代码] [代码][代码]'Content-Type'[代码][代码]: [代码][代码]'application/json'[代码][代码] [代码][代码]},[代码][代码] [代码][代码]method: [代码][代码]"GET"[代码][代码],[代码][代码] [代码][代码]success: [代码][代码]function[代码] [代码](res) {[代码][代码] [代码][代码]var[代码] [代码]order = JSON.stringify(res.data.data);[代码][代码]//返回订单的价格,标志,类型,没有订单id[代码][代码] [代码][代码]if[代码][代码](res.data.retCode==0){[代码][代码] [代码][代码]if[代码] [代码](res.data.data.product_type==9&res.data.data.used==1){[代码][代码] [代码][代码]console.log(res.data)[代码][代码] [代码][代码]wx.showToast({[代码][代码] [代码][代码]title: [代码][代码]'只能购买一次'[代码][代码],[代码][代码] [代码][代码]image: [代码][代码]"../../images/warring.png"[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码]else[代码][代码]{[代码][代码] [代码][代码]wx.navigateTo({[代码][代码] [代码][代码]url: [代码][代码]"place-order?order="[代码] [代码]+ order + [代码][代码]"&type="[代码] [代码]+ product_type [代码][代码]//把返回来的订单信息和服务包类型传到订单页[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码]else[代码][代码]{[代码][代码] [代码][代码]wx.showToast({[代码][代码] [代码][代码]title: res.data.msg,[代码][代码] [代码][代码]image: [代码][代码]"../../images/warring.png"[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码] [代码] [代码] [代码]onLoad: [代码][代码]function[代码] [代码](e) {[代码][代码] [代码][代码]console.log([代码][代码]this[代码][代码]) [代码][代码]//在真机环境下打印出来的只有data[代码][代码] [代码][代码]var[代码] [代码]that = [代码][代码]this[代码][代码];[代码][代码] [代码][代码]var[代码] [代码]types = [代码][代码]this[代码][代码].options.type;[代码][代码] [代码] [代码] [代码][代码]if[代码][代码](types){[代码][代码] [代码][代码]this[代码][代码].placeAnOrder()[代码][代码] [代码][代码]}[代码][代码]else[代码][代码]{[代码][代码] [代码][代码]this[代码][代码].favourable()[代码][代码] [代码][代码]};[代码][代码] [代码][代码]wx.login({[代码][代码] [代码][代码]success: [代码][代码]function[代码] [代码](res) {[代码][代码] [代码][代码]if[代码] [代码](res.code) {[代码][代码] [代码][代码]wx.request({ [代码][代码]//发起网络请求[代码][代码] [代码][代码]url: app.urls + [代码][代码]'api/v1/wechat/get_openid'[代码][代码],[代码][代码] [代码][代码]method: [代码][代码]"POST"[代码][代码],[代码][代码] [代码][代码]header: {[代码][代码] [代码][代码]'Content-Type'[代码][代码]:[代码][代码]'application/x-www-form-urlencoded'[代码][代码] [代码][代码]},[代码][代码] [代码][代码]data:{[代码][代码] [代码][代码]code:res.code[代码][代码] [代码][代码]},[代码][代码] [代码][代码]success: [代码][代码]function[代码] [代码](res) {[代码][代码] [代码][代码]that.setData({[代码][代码] [代码][代码]openid: res.data.data.openid[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码] [代码][代码]} [代码][代码]else[代码] [代码]{[代码][代码] [代码][代码]console.log([代码][代码]'获取用户登录态失败!'[代码] [代码]+ res.errMsg)[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码] [代码][代码]});[代码][代码] [代码][代码]}[代码] [图片] [图片] [图片] [图片]
2017-07-17 - 小程序form表单提交
最近在开发一个小程序,里面有一个form表单的提交,是textarea和input组合使用的,第一行是textarea,其余的都是input,自上而下输入,点击提交,在开发者工具上没问题,可以跳转页面,在真机上就不跳转页面,当textarea再次聚焦的时候,再点击提交就没问题,可以跳转页面。或者把textarea放在最下面,依然是自上而下输入,提交没问题,可以跳转页面(真机)。请各位大神给解释解释这是肿么回事 <view class="wrap"> <form bindsubmit="formSubmit" class="formSubmit"> <view> <text>稿件主题</text> <textarea class="title" type="text" name="name" placeholder-style="font-size:16px;line-height:20px;color:#ccc;" placeholder="请填写稿件主题" value="" auto-height /><!--这是个文本域,多行文本输入--> </view> <view> <text>联系人</text> <input type="text" name="link_man" placeholder-style="font-size:16px;color:#ccc;" placeholder="请填写联系人" value="" /> </view> <view> <text>联系电话</text> <input type="number" name="link_phone" placeholder-style="font-size:16px;color:#ccc;" placeholder="请填写联系电话或手机号" value="" /> </view> <view> <text>联系邮箱</text> <input type="text" name="link_email" placeholder-style="font-size:16px;color:#ccc;" placeholder="请填写联系邮箱" value="" /> </view> <view class="btn"> <button formType="submit" type="warn" hover-class="none">我要定制</button> </view> </form> </view> .wrap{ height: auto; padding: 0 36rpx; border-top: 1px solid #e0e0e0; border-bottom: none; } view{ display: flex; line-height: 90rpx; border-bottom: 1px solid #f5f5f5; } text{ width: 150rpx; font-size: 32rpx; letter-spacing: 2rpx; } input{ width: 528rpx; height: 90rpx; line-height: 90rpx; font-size: 32rpx; font-family: "Microsoft YaHei"; } .title{ height: auto; min-height: 40rpx; line-height: 40rpx; margin: 0; padding-top: 26rpx; } textarea{ width: 528rpx; min-height: 416rpx; line-height: 52rpx; margin-top: 20rpx; font-size: 32rpx; } .btn{ margin-top: 73rpx; justify-content: center; border: none; } .btn button{ font-size: 28rpx; } // 这是js代码 var app = getApp(); Page({ data: { }, onLoad: function (options) { }, formSubmit: function (e) { var that = this; var token = wx.getStorageSync('token'); var service_type = this.options.type; var formData = e.detail.value; if(formData.name==""){ wx.showToast({ title:"请填写稿件名称", image:"../../images/warring.png" }) } else if (formData.link_man == ""){ wx.showToast({ title: "请填写联系人", image: "../../images/warring.png" }) } else if (formData.link_phone == ""){ wx.showToast({ title: "请填写联系电话", image: "../../images/warring.png" }) } else if (formData.link_email == ""){ wx.showToast({ title: "请填写邮箱", image: "../../images/warring.png" }) } if (formData.name !== "" & formData.link_man !== "" & formData.link_phone !== "" & formData.link_email !== ""){ wx.request({ url: app.urls + 'api/applet/v1/promotion/contribute/save', data:{ token:token, service_type:service_type, name:formData.name, link_man:formData.link_man, link_phone:formData.link_phone, link_email:formData.link_email }, header: { 'Content-Type': 'application/x-www-form-urlencoded' }, method:"POST", success:function(res){ console.log(res.data) if(res.data.retCode == 0){ wx.navigateTo({ url: "writer-order?order_id=" + res.data.data.order_id + '&type=' + service_type }) }else{ wx.showToast({ title: res.data.msg, image: "../../images/warring.png" }) } } }) } } }) 这是在真机上的图片 初始界面 ,准备输入 [图片] ignore_js_op style="word-wrap: break-word;">自上而下输入完毕,点击我要定制,不会跳转页面 [图片] /ignore_js_op>ignore_js_op style="word-wrap: break-word;"> 当textarea再次获得焦点,再点击我要定制或完成才会提交成功 [图片] /ignore_js_op>ignore_js_op style="word-wrap: break-word;"> 提交成功后跳转的页面 [图片] /ignore_js_op>
2017-07-14