weex input number limit

101 Views Asked by At

use component, when i input content,it has a limit condation,only input number length is 8,and only 2 radix point,for example,can input 123.45, 123.456 is not.

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

and data is :

 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);
        }
    }

totally,this just work when two point change to three point,then still can input three point.

how does it work,need help.thx.

1

There are 1 best solutions below

0
On

You can use array split on (.) and then check arr[1].length<=2 and arr[0].length <=6.or use regex /^\d+(.\d{1,2})?$/ for 2 radix point;