3***@qq.com
3***@qq.com
  • 发布:2019-10-29 12:34
  • 更新:2021-10-26 14:16
  • 阅读:5602

【报Bug】input框 v-model双向绑定 清空不了、动态修改值 修改不了

分类:uni-app

用户名输入框,首字母要求是字母,只能是字母加数字

[内容]

<input @input="checkUsername" v-model="userInfo.username" type="text" maxlength="16" placeholder="登录账号,字母开头的字母+数字组合,最多16个字符" />
data() {  
            return {  
                userInfo: {  
                    username:''  
                },  
            }  
        },
checkUsername(event){  

                if(event.detail.value.length==1){  
                    if(/^\+?[1-9][0-9]*$/.test(event.detail.value)){  
                        this.userInfo.username = ''   
                        console.info(this.userInfo.username) //确实为空 但是界面没变  
                        return  
                    }  
                }  
                let a = event.detail.value.replace(/[^\w\.\/]/ig,'') //a的值确实去掉了中文  
                this.userInfo.username = a //没用  
                console.info(this.userInfo.username)  
            },

[IDE版本号]
2.3.7.20191024
---最新的

  • [mac版本号]
    10.14.6

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

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

联系方式

[QQ]
37136127

2019-10-29 12:34 负责人:无 分享
已邀请:
1***@163.com

1***@163.com - 573219

不设置“”,随便设置一个其他数字都可以解决,我觉得是uniapp底层问题,这个属于number类型,不支持空字符串

7***@qq.com

7***@qq.com

同志,你最后咋解决的呀~~

DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

console.info(this.userInfo.username)这句也没有打印出来正确的值吗

m***@163.com

m***@163.com

你好好基友,请问一下你最后怎么解决的,我也是这样哎 v-model绑定文本框 请求后把变量= '', 但是安卓显示也是上次输入的值没清空掉

1***@qq.com

1***@qq.com

我用官方的input type="number" v-model 空值也没有更到UI层,数据层已经置空了,UI层没有置空,你怎么解决

  • 状态的状zhuang

    我用if强制渲染的,体验不好,但是还算能用

    2021-02-04 14:15

1***@163.com

1***@163.com - 573219

一样的,双向绑定改变不了视图,使用this.$forceUpdate()也无效

就不告诉你_

就不告诉你_

把置空的逻辑 写在this.nextTick()里试一试

违规昵称4396

违规昵称4396

uni-app中的input事件监听到的值是没有你刚刚输入进去的值的
加个异步,完美解决
methods: {
checkUsername(event){
setTimeout(_ =>{
if(event.detail.value.length==1){
if(/^+?[1-9][0-9]*$/.test(event.detail.value)){
this.userInfo.username = ''
console.info(this.userInfo.username) //确实为空 但是界面没变
return
}
}
let a = event.detail.value.replace(/[^\w.\/]/ig,'') //a的值确实去掉了中文
this.userInfo.username = a //没用
console.info(this.userInfo.username)
})
},

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