672210140@qq.com
672210140@qq.com
  • 发布:2019-05-30 01:12
  • 更新:2020-07-29 10:44
  • 阅读:1026

【报Bug】app input设置number类型可以输入两个小数点;@input只是输入完成的监听,功能不够用,做一个输入金额超过两位小数禁止输入的功能实现不了

分类:uni-app

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]

重现步骤

[步骤]

[结果]

[期望]

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]

[IDE版本号]

[windows版本号]

[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?]

[运行端版本号]

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]

[编译模式是老模板模式还是新的自定义组件模式?]

App运行环境说明

[Android版本号]

[iOS版本号]

[手机型号]

[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]

2019-05-30 01:12 负责人:无 分享
已邀请:
lhywork@aliyun.com

lhywork@aliyun.com - web前端开发工程师

要有$nextTick才能改变输入框的值
this.$nextTick(() => {
this.money = money;
})

不是发哥

不是发哥

使用v-model直接设置为0.02

ZGH0709

ZGH0709

  1. type 为 number 类型的 input 测试不能输入两个小数点。你的 HBuilderX 版本是多少,我用的版本是 1.9.9.20190522, 尝试升级到最新版再进行测试。
  2. 对于超过两位小数的特殊情况,可以在 input 事件中对输入的数据进行截取,再填充至输入框即可。
  • 672210140@qq.com (作者)

    input 事件中对输入的数据进行改变使用v-model不能改变输入框的值

    2019-05-30 11:27

672210140@qq.com

672210140@qq.com (作者)

我用的是最新版的,v-model有bug 输入过程中的双向绑定失效 正则验证提现金额小数点后不能大于两位数字 输入第三位小数的时候删掉第三位并设置v-model的值 结果输入框的值并没有改变

ZGH0709

ZGH0709

正则表达式不对。在 3. , 3.2 , 3.22 等都会进入 false.

/^(\d)+(\.)?(\d){0,2}$/
  • 672210140@qq.com (作者)

    正则没问题的 现在是v-model绑定的数据改变了输入框数据没变

    2019-05-30 12:44

ZGH0709

ZGH0709

正则可以通过 debug 检验一下你输入的时候,到底进的是 true 还是 false.
最好在 nextTick 中更新 数据, 因为输入速度是很快的,直接赋值不一定每次都更新。截取最好直接截取小数点后两位。
app 端是没有问题的,你用真机测试一下。

shengxq@126.com

shengxq@126.com - 80后IT男

小程序中 比如 输入 0..

判断有两个小数点了 然后取消一个小数点
在nextTick 中更新 数据 是不行的
明细很慢 的变化, 而且 如果 输入足够快 ,还是能够输入多个小数点的

水手

水手 - 资深老开发

这个问题 就是 一个深坑。
你也不用反馈了, 他们根本就没能力解决。
每个平台都不一样,小程序可以就行了,app 为辅助了。

其实 实际数值 是正确的,就是input显示有问题

  • DCloud_UNI_WYQ

    @input事件返回值可以直接作为input的值,可以尝试不用v-model直接return一个值出来看下

    2019-11-05 10:27

yh106712@icloud.com

yh106712@icloud.com - 222222

设置v-modle值的时候加个延时1毫秒就可以了

1025669238@qq.com

1025669238@qq.com

请问这个问题解决了吗?v-modle改变不了输入框值

要回复问题请先登录注册