开发者社区> 问答> 正文

angular应用内的input在设置了maxlength的情况下输满后选中会无法修改

<div ng-app>
    <input type="text" maxlength="7" ng-model="model" />
</div>

问题是这样的,angular应用中的一个input,最大输入长度为7,输满7位后,选中其中某几位或全部选中,再进行输入会没有任何反应,输不进去。。

请问这个怎么解决呢?

展开
收起
杨冬芳 2016-06-23 14:11:57 1933 0
1 条回答
写回答
取消 提交回答
  • IT从业
    '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重新定义了

    2019-07-17 19:46:12
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载