0

使用组件,当我输入内容时,它有一个限制条件,只能输入数字长度为8,并且只能输入2个小数点,例如,可以输入123.45,123.456不能。

 <input :type="type"
           v-model="inputValue"
           :max-length="maxInputLength"
           :maxlength="maxInputLength"
           :placeholder="rightPlaceholder"
           :class="['input', disabled ? 'input-style-disabled' : '']"
           :disabled="disabled"
           @input="onTextChange"/>

数据是:

 data () {
        return {
            inputValue:'', //input value
        }
    },
    mounted(){
        if(this.value) {
            this.inputValue = this.value;
        }
    },
    methods:{
        formatAmount(value){
            let result;
            if (value.indexOf(".") > 0 && value.length - value.indexOf(".") >= 4){
                result = value.substr(0,value.indexOf('.') + 3);
                // fValue = value.toFixed(2);
                Log.d("formatAmount",result);
            }else {
                result = value;
                Log.d("formatAmount else",result);
            }
            return result;
        },
        onTextChange() {
            setTimeout(() => {
                this.inputValue = this.formatAmount(this.inputValue);
                this.$emit("onTextChange",this.inputValue);
            }, 10);
        }
    }

总而言之,这只是在两点变为三点时起作用,然后仍然可以输入三点。

它是如何工作的,需要帮助。thx。

4

1 回答 1

0

您可以在 (.) 上使用数组拆分,然后检查 arr[1].length<=2 和 arr[0].length <=6.or 使用正则表达式 /^\d+(.\d{1,2})? $/ 为 2 个小数点;

于 2018-11-26T20:05:28.277 回答