申城法斗
申城法斗
  • 发布:2019-12-11 11:09
  • 更新:2021-02-11 09:50
  • 阅读:4115

【报Bug】安卓端input输入框清空问题

分类:uni-app

详细问题描述

uniapp【安卓端】,input框聚焦输入文本状态,点击发送触发函数将input的v-model设置为空,无法清空输入内容

例:

       <input v-model="username">  
       <image :src="clearicon" @click="clearInput"></image>

聚焦状态下点击清空按钮在clearInput函数中执行 this.username = ' ',无法清空input内容

若点击之前,input是非聚焦状态,即键盘已收起,此时点击清空按钮,则可以成功清空input内容

IOS端正常。

备注1:很多人提这个问题了已经
备注2:11月19号确认了我提出的【编译时导致页面无故多处小白块】的问题,https://ask.dcloud.net.cn/question/83280,导致项目延期上线,今仍未收到解决方案,烦请推进,以继续支持uniapp。

2019-12-11 11:09 负责人:无 分享
已邀请:
DCloud_UNI_GSQ

DCloud_UNI_GSQ

input、textarea 组件的 input 事件处理函数内实时修改当前值不生效,可以延迟设置,例如:setTimeout(() => { this.value = 100 }, 0)

  • m***@163.com

    这个确实是个能行的方法,我试过了有效。还有一个问题,我开发app连接扫描枪的时候,v-model 绑定的变量 在@confirm事件里,扫描枪扫入条形码解析总是不准or不正确而且读条形码时候还很慢,最后换成@blur 用:value绑定才解决不知道v-model为啥会这样

    2019-12-17 18:42

  • DCloud_UNI_GSQ

    回复 m***@163.com: 建议你整理一下信息,单独发帖详细说明

    2019-12-17 20:10

  • 大佬救命

    回复 m***@163.com: 我也遇到了这种问题,请问解决了吗?有办法吗

    2020-08-13 17:23

  • 1***@qq.com

    回复 m***@163.com: 我这两天也在弄扫描枪的东西扫描完总是清空不了输入框,后来我用this.$nextTick((=>{this.inputtxt='';}))解决的。唉~脑阔疼

    2020-10-25 11:26

  • 状态的状zhuang

    回复 1***@qq.com: 你还能解决,说明你扫描的频率不是很高呀,我都是用v-if强制渲染的,但是问题在软键盘总是出来,再隐藏效果很不好。

    2021-02-04 13:49

  • w***@gmail.com


    我也遇到了这个问题 都写android原生插件了

    最后我给input绑了一个随机key解决了 你们可以试试

    key='Math.floor(Math.random() * 1000000)'

    2022-06-14 11:16

m***@163.com

m***@163.com

确实很多人问了,哎我的也是因为这个问题,用的是扫描枪,扫描后无法清空严重影响使用者工作效率,直到目前项目都还没上

  • 申城法斗 (作者)

    我的还是聊天页面,聊完一句点发送......手动清空

    2019-12-13 12:17

  • w***@gmail.com


    我也遇到了这个问题 都写android原生插件了

    最后我给input绑了一个随机key解决了 你们可以试试

    key='Math.floor(Math.random() * 1000000)'

    2022-06-14 11:16

h***@mayirobotics.com

h***@mayirobotics.com

我也是这个问题,扫描枪扫描后想让条码自动消失使用this.inputValue = ""无效,希望uniapp官方尽快解决

  • z***@sina.com

    也是遇到这个问题,在胡乱测试中, 发现 this.inputValue= null 是有效的,但连续扫描多个后会出现无效的情况

    2020-09-04 08:39

  • h***@mayirobotics.com

    回复 z***@sina.com: 我最后是用setTimeout()解决的

    2020-09-07 15:26

  • 状态的状zhuang

    回复 h***@mayirobotics.com: 我是用v-if解决的,扫描频率高,你用 settimeout不会连到上次的值嘛

    2021-02-04 13:50

  • w***@gmail.com


    我也遇到了这个问题 都写android原生插件了

    最后我给input绑了一个随机key解决了 你们可以试试

    key='Math.floor(Math.random() * 1000000)'

    2022-06-14 11:16

状态的状zhuang

状态的状zhuang

开发PDA ,input这是一个老大难的问题,我最终是用v-if强制渲染的,勉强达到效果,但是会显示软键盘,我只能代码隐藏,所以会出现每次扫描闪烁两次软键盘,体验不好。更重要的时候因为input是一聚焦就会显示软键盘,所以我点击页面里任何地方都会导致软键盘闪烁(因为我设置了失焦后自动聚焦到input)。
能拿到广播效果自然更好,但是问题有很多,首先一些设备广播不太好查,比如IData我i就没查到。 并且广播需要适配设备(不同厂商的设备广播标签都不同),兼容性不好。并且使用广播必须在PDA里单选设置,这是最大的问题,我们公司的PDA可不是专门给一款软件使用的,里面所有的软件都是直接扫入input的,如果你改了广播,那使用其他软件时还要改来改去,相当麻烦。
综上Input的是最佳的方式,但是可惜Uniapp的input先天对这块不太友好。数据无法清除和软键盘无法彻底隐藏的问题都是大难。前段时间我惊喜的发现了nativeObj.view.drawInput这种原生的方式,但是神奇的是居然只提供了读取input的文本的方法,没有任何设置值的方式,也就是说我无法代码清空input的值,还真是空欢喜一场。(社区里对于 drawInput设置的值的方式有多个帖子提过,最早的是18年的帖子,所以暂时无法对官方增加新方法抱有任何希望)

  • 状态的状zhuang

    我觉得MUI里的input就很好,首先他不会一聚焦就显示软键盘,而且当你click了input才会显示。并且它没有无法清空的问题。

    2021-02-04 14:07

  • 2***@qq.com

    v-if 写在哪呀 能否看看呀

    2021-07-03 02:16

  • w***@gmail.com


    我也遇到了这个问题 都写android原生插件了

    最后我给input绑了一个随机key解决了 你们可以试试

    key='Math.floor(Math.random() * 1000000)'

    2022-06-14 11:16

状态的状zhuang

状态的状zhuang

就不能出一个原生效果的input控件嘛,现有plus里的原生input连设置值的接口都没有,好无奈呀。

该问题目前已经被锁定, 无法添加新回复