console
var app = new Vue({
el: '#app',
data() {
return {
value: ''
}
},
directives: {
enterNumber: {
bind: (el, binding) => {
if (el.tagName.toLocaleUpperCase() !== 'INPUT') {
el = el.getElementsByTagName('input')[0]
}
el.value = el.value.replace(/[^0-9]+/g, '')
el.onkeypress = e => {
const code = String.fromCharCode(e.keyCode || e.which)
return /[\d]/.test(code) || e.which === 8
}
el.oninput = () => {
el.value = el.value.replace(/[^0-9]+/g, '')
}
}
}
}
})
<div id="app">
<div>{{value}}</div>
<el-input v-model="value" v-enter-number placeholder="请输入"></el-input>
</div>