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

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

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

请问这个怎么解决呢?

阅读 7.5k
3 个回答
'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重新定义了。。

试着绑定下ng-model

应该不会出现这样的问题呀,在线示例,试试第一个input

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题