角度限制输入[数量]长度

时间:2017-09-14 10:15:00

标签: javascript angularjs

使用How to limit input[number]中的指令会导致问题。

当输入达到最大值时,我想标记输入(双击输入)然后按一个数字使其改变整个输入不要改变它,因为指令{{1} } 可以在以下位置查看选择事件:

e.preventDefault();

解决这个问题的最佳方法是什么? 指令:

angular.element(elem).on("select", function(e) {
                console.log(e);

            });

并使用:

angular.module('myApp')
  .directive('limitTo', limitTo);

function limitTo() {    
    return {
        restrict: "A",
        link: function(scope, elem, attrs) {
            var limit = parseInt(attrs.limitTo);
            angular.element(elem).on("keypress", function(e) {
                if (this.value.length == limit){
                    e.preventDefault();
                } 
            });
        }
    }
};

2 个答案:

答案 0 :(得分:0)

因此,为了解决这个问题,我使用window.getSelection().toString()并确保选择符合输入:

if(this.value.length == limit && window.getSelection().toString() == this.value){
     //logic goes in here...
}

答案 1 :(得分:0)

如果您想对输入字段进行限制,然后使用ng-minlength="6" ng-maxlength="6",则可以在angularjs中指定限制。

<input type="number" class="form-control form-control-lg"  ng-minlength="6" ng-maxlength="6"
    ng-model="vm.details.m_inputSMS" placeholder = {{vm.configProprs.kodPlaceHolder}} 
    name ="m_inputSMS" id="m_inputSMS" ng-model-options="{ updateOn: 'blur' }"required/>