Android和Ionic上的退格键有一个奇怪的问题。
我正在尝试为4个字符组(最大长度= 3)实现简单输入。 我已经编写了一个指令,以便自动格式化输入,并在达到最大长度时填充下一个输入。这适用于iOS和Android 5 +。
但是,如果我在Samsung S3(4.3)上运行此代码,有时退格键无效。那是 - >输入具有焦点,但不会删除该值。添加另一个角色工作正常。
以下是代码:
.directive('autoNext', function($timeout) {
return {
restrict: 'A',
link: function(scope, element, attr, form) {
var tabindex = parseInt(attr.tabindex);
var maxLength = parseInt(attr.ngMaxlength);
element.bind("input propertychange", function (e) {
element.val(element.val().toUpperCase());
element.val(element.val().replace(/-/g, ''));
if (element.val().length > maxLength - 1) {
var original = element.val();
var remaining = original.substring(maxLength, original.length);
var newvalue = original.substring(0, maxLength);
element.val(newvalue);
element.triggerHandler('change');
var newIndex = tabindex + 1;
var tag = '[tabindex="' + newIndex + '"]';
var next = angular.element(document.querySelector(tag));
if (next.length > 0) {
var nextElement = angular.element(next[0]);
// if(!(ionic.Platform.isAndroid() && ionic.Platform.version() <= 4.3)) {
if (remaining.length > 0) {
nextElement.val(remaining);
if (ionic.Platform.isIOS()) {
next[0].focus();
} else {
$timeout(function () {
next[0].focus();
}, 5);
}
return nextElement.triggerHandler('propertychange');
} else {
return false;
}
// }
}
else {
return false;
}
}
return true;
});