【问题标题】:Prevent entering numeric and Special Characters for input防止输入数字和特殊字符进行输入
【发布时间】:2021-01-18 22:08:55
【问题描述】:

我写了一个方法,通过事件捕获输入的键。

NameValidation(e){

    if(!e.key.match(/^[a-zA-Z]*$/))
    {
        e.key = '';
        console.log(e.key);
    }
},

这基本上是检查用户是否输入了特殊字符或数字,如果是 将特殊字符/数字替换为空字符串。

问题以e.key = '';开头。

因为它不会替换捕获的密钥。我在这里错过了什么?

【问题讨论】:

  • 您可以改用HTML pattern attribute
  • @JordanStubblefield 感谢 Jordan 的反馈,我有点想在 Vue js 中做这件事。刚接触vue,一开始不知道怎么实现
  • 啊,不用担心!请提及这些细节,或者下次至少放一个 vuejs 标签;)
  • @JordanStubblefield 非常感谢您的帮助,非常感谢。

标签: javascript vue.js dom-events


【解决方案1】:

我意识到我正在使用在处理触发器时延迟的 Keypress 事件

所以我改为使用 keydown,然后使用 preventDefault 来操纵默认事件行为

这篇文章帮助了我 How can I prevent numeric inputs using VueJS

这是我的答案

JS

      NameValidation(e){

            if(!e.key.match(/^[a-zA-Z]*$/))
            {
                e.preventDefault();
            }
           
        },

HTML

<input v-model.trim="firstname_txt" v-on:keydown="NameValidation($event)">
                                                            
     

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-14
  • 1970-01-01
  • 1970-01-01
  • 2016-02-13
  • 2015-02-12
  • 2012-04-24
  • 1970-01-01
相关资源
最近更新 更多