【问题标题】:Keypress event not working on Android device按键事件在 Android 设备上不起作用
【发布时间】:2016-11-29 02:11:19
【问题描述】:

我有一个指令来控制我的输入值是否需要格式化。

directive('validNumber', function(shareDataService) 
 {
      return 
      {
        require: 'ngModel',
        link: function(scope, element, attrs, ngModelCtrl) 
        {
          if(!ngModelCtrl) 
          {
            return;
          }

  ngModelCtrl.$parsers.push(function(val) {
    if (angular.isUndefined(val)) {
        var val = '';
    }
    var clean = val.replace(/[^-0-9\.]/g, '');
          var decimalCheck  = clean.split('.');
    if(!angular.isUndefined(decimalCheck[1]))
    {
        decimalCheck[1] = decimalCheck[1].slice(0,2);
        clean = decimalCheck[0] + '.' + decimalCheck[1];
    }

    if (val !== clean)
    {
      ngModelCtrl.$setViewValue(clean);
      ngModelCtrl.$render();
    }


    return scope.hesapla(clean);
  });

  element.bind('keypress', function(event) {
    if(event.keyCode === 32) { // space
      event.preventDefault();
    }
  });

  element.bind('keypress', function(event) {
    if(event.keyCode === 45) { // - key
      event.preventDefault();
    }
  });
}
 };
})

它在浏览器上完美运行,但按键事件在设备上不起作用。尝试使用谷歌浏览器检查设备但未触发。我也尝试过 keyup 或 keydown 但仍然无法正常工作。我怎样才能完成这项工作?

谢谢

【问题讨论】:

  • 我不熟悉 ionic 框架,但在 android 上打字不会生成关键事件——它会一次生成单词输入。除非他们在框架中考虑到这一点,否则我不希望这会起作用。
  • 我的数字验证工作正常。我想我需要将此输入与此验证一起使用,而不是使用按键事件,但不知道该怎么做

标签: android events ionic-framework keypress


【解决方案1】:

包含 jQuery Mobile 文件

您需要做的只是在您的项目中包含一个 jQuery 文件。一个名为 jQuery.mobile.js 或任何版本的非常相似的文件(例如 jQuery.ui.js)可以帮助你。

你可以从Download | jQuery Mobile下载它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 2020-06-02
    相关资源
    最近更新 更多