首页 > 特效插件 > 编辑器、计算器 >  vue输入框插件,只允许输入数字正文

vue输入框插件,只允许输入数字

特效介绍

vue输入框插件


vue输入框插件,只允许输入数字、小数点和负号,并且小数点只允许输入一个,禁止输入中文和其他特殊字符。可配置小数的位数。

使用方法

1、新建number-input.vue,拷贝下面代码进去:

<template>
  <span>
    <input
      type="text"
      :value="value"
      :placeholder="placeholder"
      :readonly="readonly"
      :disabled="disabled"
      @keypress="keyPress"
      @input="inputFn"
      @change="changeFn"
    >
  </span>
</template>
<script>
export default {
  name: 'NumberInput',
  props: {
    decimalPointLength: {
      type: Number,
      default: 3
    },
    placeholder: {
      type: String,
      default: ''
    },
    readonly: {
      type: Boolean,
      default: false
    },
    disabled: {
      type: Boolean,
      default: false
    },
    value: {
      type: [String, Number],
      default: ''
    }
  },
  data() {
    return {
    }
  },
  created() {

  },
  methods: {
    keyPress(event) {
      if (event.keyCode !== 46 && event.keyCode !== 45 && event.keyCode < 48 || event.keyCode > 57) {
        event.returnValue = false
      }
    },
    inputFn(event) {
      let val = event.target.value
      const temp = val.split('.')
      if (temp[1] && temp[1].length > this.decimalPointLength) {
        temp[1] = temp[1].substr(0, this.decimalPointLength)
      }
      val = temp[0] + (temp[1] !== undefined ? '.' + temp[1] : '')
      event.target.value = val.replace(/[\u4e00-\u9fa5]/ig, '')
      this.$emit('input', val)
      // this.$emit('input', event.target.value)
    },
    changeFn(event) {
      this.$emit('change', event.target.value)
    }
  }
}
</script>


2、在main.js全局引入

import numberInput from '@/components/number-input.vue' // 数字输入框
Vue.component('numberInput', numberInput)


3、在需要使用到的地方加入下面的html代码

<number-input v-model="myValue" placeholder="请输入数字" :decimalPointLength="2" @change="changeFn" />


参数很简单,就不细说了。