javascript - angular应用内的input在设置了maxlength的情况下输满后选中会无法修改
本文介绍了javascript - angular应用内的input在设置了maxlength的情况下输满后选中会无法修改的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
<div ng-app>
<input type="text" maxlength="7" ng-model="model" />
</div>
问题是这样的,angular应用中的一个input,最大输入长度为7,输满7位后,选中其中某几位或全部选中,再进行输入会没有任何反应,输不进去。。
请问这个怎么解决呢?
解决方案
'use strict';
export default function () {
return {
restrict: 'A',
link: function ($scope, $element, $attributes) {
var limit = $attributes.maxlength;
$element.bind('keyup', function (event) {
var element = $($element).closest('.form-group');
element.toggleClass('has-warning', limit - $element.val().length <= 10);
element.toggleClass('has-error', $element.val().length >= limit);
});
$element.bind('keypress', function (event) {
// Once the limit has been met or exceeded, prevent all keypresses from working
if ($element.val().length >= limit) {
// Except backspace
if (event.keyCode !== 8) {
event.preventDefault();
}
}
});
}
};
}
谢谢大家的帮助。
经过反复排查,发现是一个第三方指令将maxlength重新定义了。。
这篇关于javascript - angular应用内的input在设置了maxlength的情况下输满后选中会无法修改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文