繁体   English   中英

拒绝vue输入中的非数字

[英]Rejecting non digits in vue input

有人知道如何实现一个在用户尝试输入时拒绝输入非数字的 VUE 输入字段。

一些:

<b-form-input v-on:keypress="onlyNumber(...."

谢谢!

最简单的方法是将输入类型声明为数字。 <b-form-input type="number"...

最后,对我来说,这可以完成工作:

    <input v-on:keydown="onlyNumber($event)" ... />

    

onlyNumber: function(evt) { //0035621
        evt = (evt) ? evt : window.event;
        var charCode = (evt.which) ? evt.which : evt.keyCode;
        if (charCode > 31 && (charCode != 46 &&(charCode < 48 || charCode > 57))) {
            evt.preventDefault();
        } else {
            return true;
        }
    }

如果 keyCode 不用于非数字键,则可以使用 keydown 事件上按下的键的 keyCode 和 perevent 默认行为;

Vue输入组件:

<b-form-input @keydown="onlyNumbers" />

onlyNumbers 方法是:

onlyNumbers(e) {
    if((e.keyCode < 48 || e.keyCode > 57) && (e.keyCode < 96 || e.keyCode > 105)) {
        e.preventDefault();
}

相关链接: 数字小键盘的 keyCode 值preventDefaultKeydown 事件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM