VUE input输入框只允许输入数字和小数点

3,886 阅读1分钟

人狠话不多,v-number:WF="scope.row" 指令给指令value赋值为对象,arg参数未字面量,这样可以直接修改原始数据。

<template v-if="scope.row.edit">
 <el-input v-model="scope.row.WF"  v-number:WF="scope.row"  />
</template>
let eventInputChange = (ev, el) => {
    let { value } = ev.querySelector("input");
    let reg = /[^\.^\d]/i;
    value = value == "" ? "" : value.replace(reg, "");
    // console.log(value);
    el.value[el.arg] = value;
};
let eventInputBlur = (ev, el) => {
    console.log(ev);
    el.value[el.arg] = parseFloat(el.value[el.arg]);
};
export default {
    bind(el, binding, vnode) {
        let input = el.querySelector("input");
        el.addEventListener("input", eventInputChange.bind(this, el, binding, vnode), false);
        input.addEventListener("blur", eventInputBlur.bind(this, el, binding, vnode), false);
    }
};