设想在 <input>
中通过监听 keydown
事件,判断事件参数对象的 keyCode
,进而调用 preventDefault()
阻止非法字符的输入。
示例代码:
<input type="text" @keydown.prevent="handleKeydown">
<p ref="box"></p>
handleKeydown(event) {
this.$refs.box.innerHTML = `keydown: ${event.key} - ${event.keyCode} - ${event.charCode}`;
}
在安卓版的 Firefox 浏览器中(版本号63.0.2),效果如下:
在安卓版的 Chrome 浏览器中(版本号67.0.3396.87),效果如下:
手机操作系统版本为 Android 7.1.1。
为什么 Chrome 浏览器中的输出与 Firefox 不一致,而且无法通过 preventDefault()
阻止输入?