Vue 和 uni-app input 只能输入2位浮点数和解决输入框值不会变的问题

yufei       2 年, 5 月 前       2817

废话不多说,调了3个小时,终于有答案了

<input @input="inputCheck"  v-model="amount"/>

脚本则是

methods: {
    inputCheck(el) {
        var that = this;
        var idx = -1;
        var value = el.detail.value.replace(/[^0-9.]/g,'').trim();
        if(value == "") {
            setTimeout(function(){
                that.amount = '';
            },100); 
            return;
        }

        idx = value.indexOf('.');
        var raw = value;
        if(idx > 0) {
            var ext = value.slice(idx+1,idx+3)
            if (ext.indexOf('.') > -1 ) {
                ext = ext.slice(0,ext.indexOf('.'));
            }
            if(ext.length > 2 ) {
                ext = ext.slice(0,2);
            }

            value = value.slice(0,idx) + '.' + ext;

        } else if(idx == 0) {
            value = '0.'
        }

        setTimeout(function(){
                console.log(value);
                that.amount = value;
        },0);
    }
}

大部分代码都是为了只能输入小数且精确到2位

而解决输入框值不会变的问题则是依赖

setTimeout(function(){
   that.amount = value;
},0);
目前尚无回复
简单教程 = 简单教程,简单编程
简单教程 是一个关于技术和学习的地方
现在注册
已注册用户请 登入
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.