2016-04-06 3 views
0

Как добиться обрезки только на ng-paste = true. Я имею в виду, что когда входы имеют больше, чем maxlength = «x» (с использованием обычного типа), ничего не происходит, но когда пользователь вставляет что-то во входные данные (которые имеют больше, чем maxlength x), обрезка будет запущена, а вход будет обрезан до x maxlength.Обрезка только на пасте

+0

в Chrome, он делает это по умолчанию. https://jsfiddle.net/ctjaxds5/ – EnigmaRM

+0

@EnigmaRM Это похоже на все браузеры, и это может быть то, что он хочет. Из того, как я его читал, он только хочет, чтобы maxlength выполнялась, когда пользователь вставляет и хочет пройти мимо maxlength, когда пользователь набирает. – rgvassar

+0

@rgvassar вы правы – adm

ответ

0

В HTML:

<input ng-paste="trim(20)" ng-model="val" ng-init="paste=false" placeholder='paste here'> 

В JavaScript:

$scope.trim = function(maxLength) { 
    $scope.val = $scope.val.substring(0, maxLength); 
}; 
+0

Это не работает как собственная ng-trim при достижении максимальной длины. К сожалению, это непригодно. Он обрезает только текст, когда был напечатан перед пастой. – adm

Смежные вопросы