javascript - 仅数字验证在离子应用程序中不起作用
问题描述
<input type="tel" (keydown)="numberOnlyValidation($event)">
// 函数无法读取输入数值
// 在输入字段中输入内容时,主要显示无法读取键盘数字值
numberOnlyValidation(event: any) {
console.log(event.target.value)
//pattern
const pattern = /[0-9]/;
const inputChar = String.fromCharCode(event.charCode);
if (!pattern.test(inputChar)) {
// invalid character, prevent input
event.preventDefault();
}
}
``
解决方案
该.charCode
属性仅存在于keypress
事件键盘事件(developer.mozilla.org)
规范说要改用 KeyboardEvent.key 属性(developer.mozilla.org)
除了处理删除之外,如果您更改此行以使用,您的代码应该可以工作event.key
const inputChar = String.fromCharCode(event.charCode); // remove
const inputChar = event.key; // add
推荐阅读
- java - 如何发送地图
使用 Spring MVC 中的 @PathVariable - gitlab-ci - 如何创建被评估为 AND 而不是 OR 的 Gitlab CI 规则
- angular - 如何根据用户单击父组件中的对象在共享服务的子组件中显示数据?
- typescript - 如何修复'未找到规则'@typescript-eslint/no-use-before-declare'的定义。eslint(@typescript-eslint/no-use-before-declare)'
- mysql - 无法进入 Laravel 5.3 中的引用页面
- xml - S4s-att-not-allowed:属性“targetNameSpace”不能出现在元素“模式”验证错误中
- java - bris.platform.core.Registry.activateMasterTenant(Registry.java:626) [coreserver.jar:?
- reactjs - 如何访问表单内的道具
- laravel - 我正在尝试从发票中返回用户和项目数据
- testing - 我们可以为 testcafe 的 RequestLogger 中的方法设置多个键值吗