【发布时间】: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