如果用户尝试在输入中输入不匹配的类型(在我的情况下是数字输入),Chrome(55.x)中不会出现任何外观。为了提高可用性,我希望显示一个弹出窗口,让用户知道他们正试图输入无效数据,而不是让他们认为输入是“破碎”的。如果在输入字段中输入了错误的类型,在Chrome中显示消息
这是很容易在FF纯JS实现(这将允许输入失配系,它只是无效):
input.addEventListener('input', function() {
if (!this.checkValidity()) {
this.value = '';
console.log('please enter a number!');
}
}
由于Chrome实际上并没有什么投入,但是,有效性输入为空时检查总是通过;它似乎没有对错误的输入做任何事情,除了忽略它。
有什么方法可以覆盖此行为,或以其他方式实现预期效果?
我曾考虑过这种方法,但因为它会变得非常混乱 - 您必须考虑Delete和Backspace以及可以在输入字段上操作的任何键盘快捷方式;而不是一个很好的,简单的功能,你可以迅速结束了令人费解的代码。虽然我很欣赏你的答案(并且它比我的代码更优雅),但如果它选择的是默认行为,我将采用懒惰选项。 ;) – chrBrd