首页 > 解决方案 > 仅数字验证在离子应用程序中不起作用

问题描述

      <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();
        }
    }

``

标签: javascripthtmlangularvalidationevent-binding

解决方案


.charCode属性仅存在于keypress事件键盘事件(developer.mozilla.org)

规范说要改用 KeyboardEvent.key 属性(developer.mozilla.org)

除了处理删除之外,如果您更改此行以使用,您的代码应该可以工作event.key

const inputChar = String.fromCharCode(event.charCode); // remove
const inputChar = event.key; // add

推荐阅读