当前位置: 代码迷 >> JavaScript >> 无法在Ionic / Cordova应用中收听退格事件
  详细解决方案

无法在Ionic / Cordova应用中收听退格事件

热度:32   发布时间:2023-06-05 10:18:52.0

我正在开发Ionic / Cordova应用程序,在处理Samsung设备的数字输入时遇到一些问题,当 ,它们根本 。 如果它是本机应用程序,则可以使用numberDecimal类型,但是在HTML中找不到类似的输入类型。 为了解决这个问题,我决定创建一个简单的Angularjs指令,因此掩码可以自动放置小数点分隔符:

angular.module('number.mask', [])
.directive('numberMask', function () {
    return {
        restrict: 'A',
        require: 'ngModel',
        link: function (scope, element, attrs, ctrl) {

            element.on('focus',function(){
                this.value = this.value;
            });

            element.on('keyup',function(event){
                if (ctrl.$isEmpty(ctrl.$viewValue)) {
                    return ctrl.$viewValue;
                }
                var newValue=ctrl.$viewValue;
                if(event.keyCode=== 8)
                    newValue/=10;
                else if(newValue.toString().indexOf('.')===-1 && newValue.toString().indexOf(',')===-1)
                    newValue/=100;
                else
                    newValue*=10;
                newValue=parseFloat(Math.round(newValue * 100) / 100).toFixed(2);
                ctrl.$setViewValue(newValue);
                ctrl.$render();
            });
        }
    };
});

我快到了,但是,当我按下退格按钮时,什么也没有触发。 其他所有按钮(包括粘贴按钮)至少会触发keydown和keyup,但退格键不会触发这些按键,也不会触发按键。 所以问题是,当在Android虚拟键盘中点击退格按钮时,如何监听事件?

这可能使用锤子杀死苍蝇,但一种方法是使用触摸库,例如, 捕获所有事件并触发简单的触摸事件。 对于处理某些触发触摸事件的设备也很有用。 就我而言,我必须使用它,因为Android 4.4.x设备奇怪地触发了触摸事件。

  相关解决方案