angular.js - Angularjs如何限制textarea输入字数?
phpcn_u1582
phpcn_u1582 2017-05-15 16:51:33
[AngularJS讨论组]

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

phpcn_u1582
phpcn_u1582

全部回复(4)
过去多啦不再A梦
<p ng-controller="TextareaCtrl">
    <textarea ng-model="text" ng-change="checkText()"></textarea>
</p>
function TextareaCtrl($scope)
{
    $scope.checkText = function () {
        if ($scope.text.length > 5) {
            alert("text is too long");
            $scope.text = $scope.text.substr(0, 5);
        }
    };
}
PHPz

使用 $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个字符
        }
    }
})
曾经蜡笔没有小新

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

PHP中文网

<p ng-controller="myNoteCtrl">

<textarea ng-model="message" cols="40" rows="10" maxlength="{{ max }}"></textarea>
<p>
    <button ng-click="save()">保存</button>
    <button ng-click="clear()">清除</button>
</p>
<p>Number of characters left: <span ng-bind="left()"></span></p>    

</p>

<script>

var app = angular.module("myNoteApp", []);
app.controller("myNoteCtrl", function($scope) {
    $scope.max = 100;
    $scope.message = "";
    $scope.left  = function() {
        return 100 - $scope.message.length;
    };
    $scope.clear = function() {$scope.message = "";};
    $scope.save  = function() {alert("Note Saved");};
});

</script>

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号