特效介绍
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" />
参数很简单,就不细说了。