textarea的问题让人想骂娘,代码中的注释部分反映了大头处理这些问题的尝试,有些有用,有些没用。最后总地来说还是没用,从昨天晚上折腾到今天早上。
css类fxa-top的persition是fixed,所以一开始textarea的fixed = 'true'。这个时候输入一个字符键盘会消失,然后又会回来。这时page中有storePlan方法,该方法中的setData工作正常,但是app.store()没用(写在app里的方法,代替wx.setStorageSyn()在其它地方表现良好,有全局变量 var app = getApp())。错误提示:cannot read property data of undefined。这是我目前遇到的最好结果。
然后为了解决这个问题,大头开始想办法。先是把textarea放在了一个没有fixed的区域,去掉了fixed属性。结果一字失焦问题来了。失去焦点后由于触发blur事件,这一块儿就消失了。去掉bindinput这个问题消失,但是计数器就没了。
把storePlan由page的方法改成renewDsc的局部函数。现在触发textarea的confirm事件时,显示如下错误信息:
property is not defined;at pages/detail page renewDsc function
已经饿得不行了,代码格式肯定是没问题的,其它的问题找不动了,大侠们快来帮帮我。我去吃饱了回来看。
<!--view class="fxa-top" style='width:100%' wx:if="{{inputDsc}}"--> < view class = "weui-cells weui-cells_after-title " wx:if = "{{inputDsc}}" > < view class = "weui-cell" > < view class = "weui-cell__bd" > < textarea class = "weui-textarea" auto-focus = 'true' placeholder = "描述" style = "height: 8em" maxlength = '200' name = 'description' value = "{{description}}" bindinput="countWords" bindblur = 'description' bindconfirm = 'renewDsc' /> < view class = "weui-textarea-counter" >{{counter}}/200</ view > </ view > </ view > </ view > <!--/view--> |
data: { counter: 0, }, /*storePlan: function () { var plan = {}, plans = this.data.plans, index = this.data.index; var p = this.data.plans[index]; //delete p.detail; for (property in p) { plan[property] = this.data[property]; } plans[index] = plan; this.setData({ plans: plans }); app.store('plans', plans) }, /** * 事件处理函数,监听textarea的blur和view的tap */ description: function () { var input = ! this .data.inputDsc; this .setData({ inputDsc: input, }) }, /** * 事件处理函数,监听文本域输入事件,统计输入字数。 */ countwords: function (e) { this .setData({ counter: e.detail.value.length }) }, /** * 监听理由文本域点击【完成】事件 */ renewDsc: function (e) { var description = e.detail.value; var that = this ; //this.storePlan(); storePlan(); this .setData({ description: description, inputDsc: false , }); function storePlan(){ var plan = {}, plans = that.data.plans, index = that.data.index; var p = that.data.plans[index]; delete p.detail; for (property in p) { plan[property] = that.data[property]; } plans[index] = plan; that.setData({ plans: plans }); app.store( 'plans' , plans) } }, |
请问你的问题解决了么?是怎么做到的?
小程序是严格模式,property没有声明,有大头就是好啊