收藏
回答

textarea 字数限制 bug

问题模块
API和组件

在输入长度大于140的内容之后,如果使用 setData ,则超过140长度的字符会丢失


目前我只能先自己把内容截取成两部分,在setData 之后重新给textarea单独 setData ..


贴 code 之后保存失败。。。。。


如需 code 我会在评论尝试贴出

最后一次编辑于  2017-04-06  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

4 个回答

  • 回梦無痕
    回梦無痕
    2017-04-06


    maxlengthNumber140最大输入长度,设置为 -1 的时候不限制最大长度

    开发文档有写

    2017-04-06
    赞同
    回复
  • Thestral
    Thestral
    2017-04-06

    @回梦無痕   textarea 已经设置过maxlength了  不然用户也输入不成超过140的内容

    现在问题就是 如果再用setData 把内容绑定到这个textarea上, 超过140字符的内容就丢了。。

    2017-04-06
    赞同
    回复
  • 回梦無痕
    回梦無痕
    2017-04-06

    this.setData({textarea_value:'长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论长评论1111'});

    我试了下,没有发现丢失。。。iPhone7 IOS10.1.1上测试的

    2017-04-06
    赞同
    回复
  • Thestral
    Thestral
    2017-04-07

    @回梦無痕


    我这边情况是这样的,我表达能力有点差劲,我试着说一下看能不能说明白

    我这边有这样一个array

    let temparr =  [
          {
            "type": "text",
            "value": "   2月14日,手机报记者从省公安厅交警总队获悉,正月十五过后,很多外出务工的群众开始纷纷外出打工。与此同时,为了多拉人多赚钱,许多长途客车开始抱着侥幸心理超员载客。\n \n案例:准载5人轿车塞下9人,2名儿童藏进后备箱\n    2月11日正月十五上午,柘城县一辆车牌号为豫N3C022号白色轿车行驶至连霍高速公路商丘站时,因走走停停意欲躲避商丘高速交警检查,心细的执勤交警检查后发现,该车后备箱竟藏着2个六七岁的儿童,该车核载5人、实载竟9人,涉嫌严重超员,司机被民警依法给予罚款200元、驾驶证记6分的处罚。"
          },
          {
            "type": "image",
            "value": "https://www.hnsjb.cn/uploadfile/yuanchengfagao/big/1487064404.jpg",
            "title": ""
          },
          {
            "type": "text",
            "value": "\n    随着当前农村机动车保有量在大幅增长,特别是面包车增长速度最快,亲朋好友聚会、出去游玩,驾车出行成为主要的出行方式,但有时候感觉多个人没啥,几个人挤到车里一会儿就到了,却忘了安全,导致悲剧的发生。"
          },
          {
            "type": "image",
            "value": "https://www.hnsjb.cn/uploadfile/yuanchengfagao/big/1487064439.jpg",
            "title": ""
          },
          {
            "type": "text",
            "value": "自今年春节以来,全省交警查处客车、面包车等超员违法165起。当前正值节后第二波务工返城高峰,交警接到乘客举报客车超员违法又多了起来,广大群众可拨打“110”报警电话或12123、警民通(手机APP)进行举报。举报严重道路交通违法行为,并经公安交通管理部门查证属实的,给予举报人50至500元奖励(河南手机报记者 杨致文)"
          }
        ]

    然后

    this.setData({"article.content":temparr})

    如果 type 为 text 的 obj 中的 value 超过了140 ,会发生内容丢失的情况,但是如果我在setData之前 ,遍历 temparr, 将其中 text 的 value 及该 obj 在数组中的 index 取出来另存,然后在执行 this.setData({"article.content":temparr}) 后,执行

    let data = {};
    data['article.content[' + index + '].value'] = fullvalue
    this.setData(data);

    则内容会重新赋值上去...

    另附wxml如下

    <view class="content-content" wx:for="{{article.content}}" wx:for-index="idx" wx:key="item">
          <view wx:if="{{item.type == 'text'}}">
            <textarea auto-height placeholder="输入文字内容" class="content-input" maxlength="-1" data-cidx="{{idx}}" bindconfirm="setText" value="{{item.value}}" />
          </view>
          <view wx:elif="{{item.type == 'image'}}" class="content-media">
            <image style="width: 155rpx; height: 155rpx; background-color: #eeeeee;" mode="aspectFit" src="{{item.value}}"></image>
            <textarea class="media-title" bindblur="setTitle" data-cidx="{{idx}}" placeholder="请输入图片标题" value="{{item.title}}"></textarea>
            <view class="media-del" hover="true" hover-class="media-del-hover" bindtap="delMedia" data-cidx="{{idx}}"></view>
          </view>
          <view wx:elif="{{item.type == 'video'}}" class="content-media">
            <video style="width:155rpx;height:155rpx;" objectFit="contain" src="{{item.value}}"></video>
            <textarea class="media-title" bindblur="setTitle" data-cidx="{{idx}}" placeholder="请输入视频标题" value="{{item.title}}"></textarea>
            <view class="media-del" bindtap="delMedia" data-cidx="{{idx}}"></view>
          </view>
     
                  
        </view>


    2017-04-07
    赞同
    回复