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

标签 javascript google-chrome

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

这可以通过 FF 中的纯 JS 轻松实现(允许输入不匹配的类型,它只是无效):

input.addEventListener('input', function() {
    if (!this.checkValidity()) {
        this.value = '';
        console.log('please enter a number!');            
    }
}

由于 Chrome 实际上并未输入任何内容,因此当输入为空时,有效性检查始终会通过;除了忽略它之外,它似乎不会对错误的输入执行任何操作。

有什么方法可以覆盖此行为,或以其他方式达到预期效果吗?

最佳答案

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

<script>
    var numInput = document.getElementById("num");
    numInput.addEventListener("keyup", function(e) {
       if (isNaN(String.fromCharCode(e.which))) {
           alert("Must be a number");
       }
    });
</script>

关于javascript - 如果在输入字段中输入错误的类型,则在 Chrome 中显示消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41863469/

相关文章:

javascript - 操作新实例后变量失去原始值

javascript - 使网站小部件符合 SEO 标准 - 有可能吗?

javascript - 我如何使用 javascript 在 angularjs 中进行 session 处理?

asp.net - 如何为 Google Chrome 启用自动登录用户身份验证

css - 谷歌浏览器逆时针旋转但应该是顺时针

css - 在 chrome 中更改滤镜时图像在悬停时移动

javascript - 原型(prototype)事件处理器

javascript - 使用对象表示法就好像它是一个数组——为什么要这样计算?

javascript - 有没有办法找到 Google Chrome 的 "Aw, Snap"页面的根本原因?

javascript - 阻止 Chrome 调试器在恢复调试器时重新加载页面