Как уже упоминалось в комментариях, maxlength
не работает с вводом чисел.От MDN :
maxlength : если значением атрибута type является текст, электронная почта, поиск, пароль, телефон или URL, этот атрибут указываетмаксимальное количество символов (в единицах кода UTF-16), которое может ввести пользователь.Для других типов элементов управления он игнорируется.
Вот небольшая директива, которую вы можете использовать вместо:
angular.module('myApp').directive('maxLength', function() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
var maxLength = attrs.maxLength || false;
if (maxLength) element.on('keydown keypress keyup paste propertychange', function(e) {
if (element[0].value.length >= maxLength - 1) {
element[0].value = element[0].value.slice(0, maxLength)
}
})
}
}
});
<input type="number" max-length="8">