Javascript 如何使用VueJS防止数字输入

Javascript 如何使用VueJS防止数字输入,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我需要创建一个验证,防止用户在文本框中输入数字输入。我找到了一些使用本机javascript的解决方案,但它对我来说不起作用 在我的文本框中有一个触发器 v-on:keyup="preventNumericInput($event)"> 在我的Vue上,我在我的类上创建了一个函数 preventNumericInput($event) { console.log($event.keyCode); //will display the keyCode value cons

我需要创建一个验证,防止用户在文本框中输入数字输入。我找到了一些使用本机javascript的解决方案,但它对我来说不起作用

在我的文本框中有一个触发器

v-on:keyup="preventNumericInput($event)"> 
在我的Vue上,我在我的类上创建了一个函数

preventNumericInput($event) {
    console.log($event.keyCode); //will display the keyCode value
    console.log($event.key); //will show the key value

    var keyCode = ($event.keyCode ? $event.keyCode : $event.which);
    if (keyCode > 47 && keyCode < 58) {
        $event.preventDefault();
    }
}
preventNumericiInput($event){
console.log($event.keyCode);//将显示keyCode值
console.log($event.key);//将显示键值
var keyCode=($event.keyCode?$event.keyCode:$event.which);
如果(键码>47和键码<58){
$event.preventDefault();
}
}

你能帮我一下吗?

正如我在评论中提到的,
keyup
启动太晚,无法将值输入到输入字段中。例如,考虑按住一个键反复输入相同的值;没有钥匙

相反,请使用
keydown
keypress

<input @keypress="preventNumericInput">


演示~

试试这个:你真的应该观察输入并对数字输入做出反应。或者,您可以使用oninput
keyup
来捕获事件,因为它可能太晚了。试试
keydown
keypress
为什么不使用?