angular - 按键事件在 ionic 2 Android 中不起作用

标签 angular cordova ionic-framework ionic2 ionic3

按键事件不会在 ionic 2 Android 应用程序中触发。同样适用于 iOS 和浏览器(chrome)平台。我的要求是用一些字符来限制键盘输入。即,不想显示我在输入字段中输入的字符。下面的代码片段如下..

onKeyPress(event) {
    const pattern = /[0-9\.\ ]/;
    let inputChar = String.fromCharCode(event.charCode);
    if (!pattern.test(inputChar)) {
        event.preventDefault();
    }
}

:HTML

<input type="text" (click)="stopProcess()" (keypress)="onKeyPress($event)" />

以上函数在 android 中不触发。谁能建议我解决同样的问题?

最佳答案

我通常使用JS key listener:

page.ts:

ionViewDidLoad() {
    document.addEventListener('keydown', (key) => {this.keydown(key)} );
}

keydown(key){
    console.log('Tadaaah')!
}

如果你想为每个键触发事件,在函数 keydown(key) 中,听取 key.keyCode:

keydown(key){
  console.log(key.keyCode);
}

按下要触发事件的键,做笔记,然后添加功能:

keydown(key){
  if (key.keyCode == 13){
    this.functionA();
    return;
  }
  if (key.keyCode == 32){
    this.functionB();
    return;
  }
}

functionA() {
   console.log('Function A');
}

functionB() {
   console.log('Function B');
}

总结

你的代码应该是这样的:

  ionViewDidLoad() {
    document.addEventListener('keydown', (key) => {this.onKeyPress(key)} );
  }

  onKeyPress(key) {
    const pattern = /[0-9\.\ ]/;
    let inputChar: string = key.keyCode;
    if (!pattern.test(inputChar)) {
      event.preventDefault();
    }
  }

关于angular - 按键事件在 ionic 2 Android 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46560807/

相关文章:

angular-cli for angular2 如何加载环境变量

angular - 具有 Angular 自定义逻辑的动态按钮(单击)

android - 如何在 Android Cordova v4.0.2 中使用 window.location = "http://{remote_url}"?

Angular 2 : call child component method

angular - 如何向守卫传递参数?

android - 无法删除联系人,android phonegap

javascript - 如何在indexedDB中存储mongodb集合数组

Firebase 导入未在构造函数 ionic Native 中初始化

angular - 如何修复 - 类型 'map' 上不存在属性 'Action'

node.js - 使用带有 ionic 和express 的卫星器