javascript - 如何使用 VueJS 防止数字输入

标签 javascript vue.js vuejs2

我需要创建一个验证来防止用户在文本框中输入数字。我找到了一些使用 native 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();
    }
}

你能帮我解决这个问题吗?

最佳答案

正如我在评论中提到的,keyup 触发得太晚,无法阻止将值输入到输入字段中。例如,考虑按住一个键重复输入相同的值;没有键 up

相反,使用keydownkeypress

<input @keypress="preventNumericInput">

演示~ http://jsfiddle.net/wadt08jm/1/

关于javascript - 如何使用 VueJS 防止数字输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50828016/

相关文章:

javascript - 定义 Vue-Router 路由时访问 Vuex 状态

javascript - 或嵌套列表 - Vuetify

javascript - v-bind 没有检测到数组内容的变化(vue js)

javascript - 从另一个组件重新渲染组件的一部分

javascript - 如何将所有静态字符串放在一处

javascript - 在全日历中显示空单元格

javascript - 在 Node.js 中为类集合命名空间

javascript - 如何使用 Vue.js 在 HTML 中显示 unicode/十六进制表情符号和八进制文字

javascript - 数组的数组到输出中的对象列表(没有额外的数组)

vue.js - Vue 如何从父组件访问子组件数据?