首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果在输入字段中输入了错误的类型,则在Chrome中显示消息

问如果在输入字段中输入了错误的类型,则在Chrome中显示消息
EN

Stack Overflow用户
提问于 2017-01-26 07:18:18
回答 2查看 78关注 0票数 0

在Chrome (55.x)中,如果用户试图在输入(在我的例子中是数字输入)中输入不匹配的类型,表面上看不会发生任何事情。为了增强易用性,我想显示一个弹出窗口,让用户知道他们正在尝试输入无效数据,而不是让他们认为输入是“损坏的”。

在FF中使用纯JS很容易做到这一点(它允许输入不匹配的类型,它只是无效):

代码语言:javascript
复制
input.addEventListener('input', function() {
    if (!this.checkValidity()) {
        this.value = '';
        console.log('please enter a number!');            
    }
}

然而,因为Chrome实际上并不输入任何东西,所以有效性检查总是在输入为空时通过;除了忽略它之外,它似乎不会对不正确的输入做任何事情。

有没有什么方法可以覆盖这个行为,或者达到预期的效果?

EN

回答 2

Stack Overflow用户

发布于 2017-01-26 07:26:55

当然,你可以为keyup做一个监听器,它会给你按下的键。

代码语言:javascript
复制
<script>
    var numInput = document.getElementById("num");
    numInput.addEventListener("keyup", function(e) {
       if (isNaN(String.fromCharCode(e.which))) {
           alert("Must be a number");
       }
    });
</script>
票数 1
EN

Stack Overflow用户

发布于 2017-01-26 07:45:45

设置最后一个输入值并像这样检查如何?

代码语言:javascript
复制
let input = document.querySelector('input');
let lastInput = input.value;
input.addEventListener('input', (e) => {
    if (e.target.value === lastInput) {
        alert("Input must be a number");
    }
    lastInput = e.target.value;
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41863469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档