Angularjs如何限制textarea输入字数?


一般情况下的输入可以做出限制,但是在移动端上,用输入法打出一大段文字再点击输入文本框内超出限制也还能继续输入。请问有什么其他的方法可以一直跟踪用户输入的字数,监控到超出了就弹出提示并且把超出的内容删掉?

textarea angularjs

高町袋袋子 9 years, 8 months ago

你可以这样:
在textarea上绑定一个变量ng-model="length",统计你现在的字数,然后在绑定一个变量通过ng-disabled="length>=140"让textarea变disabled,或者弹出框什么的,反正就是监控输出框的字数。

菠萝MKII answered 9 years, 8 months ago

使用 $watch


 javascript


 $scope.content; //假设这是你textarea上的绑定
var limitation = 150; // 假设文本长度为 150
$scope.$watch('content', function(newVal, oldVal) {
    if (newVal && newVal != oldVal) {
        if (newVal.length >= limitation) {
            $scope.content = newVal.substr(0, limitation); // 这里截取有效的150个字符
        }
    }
})

灵乌路空乌鸦 answered 9 years, 8 months ago


 <div ng-controller="TextareaCtrl">
    <textarea ng-model="text" ng-change="checkText()"></textarea>
</div>


 function TextareaCtrl($scope)
{
    $scope.checkText = function () {
        if ($scope.text.length > 5) {
            alert("text is too long");
            $scope.text = $scope.text.substr(0, 5);
        }
    };
}

黑貓キキ君 answered 9 years, 8 months ago

Your Answer