前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >说说小程序中textarea的坑

说说小程序中textarea的坑

作者头像
连胜
发布2018-10-08 14:31:18
9K0
发布2018-10-08 14:31:18
举报

昨天有群友在问:小程序里textarea不能输入文字是怎么回事儿

textarea确实有不少坑,今天给大家分离一下常见的几个坑:

1、无法获取焦点

有很多用户都给我家小程序客服反馈,说是页面无法输入内容,集中在微信6.6.7版本,之前的微信版本都正常。

经过多次测试,发现是部分安卓用户无法让textarea获取焦点,可以看这个帖子:https://developers.weixin.qq.com/blogdetail?action=get_post_info&docid=000282f680c580ef74d6575d555400

解决方法:

给textarea添加focus属性,然后绑定事件(bindtap),当用户点击textarea时,让textarea自动获取焦点即可。

2、textarea层级太高

在小程序中,有些是系统组件,层级很高,比如:map、video、canvas、camera、live-player、live-pusher等,没办法用定位+z-index的形式来遮罩这些组件。

因此,在自定义dialog时,经常会出现dialog无法遮罩住textarea组件。

解决办法:

1、使用cover-view组件,可覆盖的原生组件,包括textarea。

2、可以换种思路:是把textarea隐藏,替换成text标签进行显示,关闭dialog时,再把textarea组件显示出来。

3、手写输入法没有保存内容

input和textarea都有一个共同的问题,用户使用手写输入法时,bindinput无法获取到用户输入的内容。

解决办法:

再添加一个bindblur事件,可以获取到手写输入法的内容。

(手写输入法,bindinput获取不到输入内容)

4、光标闪烁问题

input和textarea在输入内容时,如果在bindinput事件时,通过调用setData保存输入的内容,光标就会自动跑到最后去,这也是个大坑。

解决办法:

1、不调用setData,用event来获取form表单内容

2、setData时,设置另一个值。或者直接用this.data.xxx = e.detail.value,这种情况只会把赋值,不会重新渲染view

(setData时,光标bug截图)

《完》

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 知晓程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档