AngularJS的最大长度不起作用

时间:2015-11-06 14:48:40

标签: angularjs html5 ng-maxlength

我正在尝试为文本输入字段实现maxlength功能。

但是,每当我超过30的最大长度时,就会显示一条消息,说它太长了。

在我能够正确实施这一点的情况下,我做错了什么。

<div class="form-group">
                            <div class="col-sm-4">
                                <label class="control-label align-left">JV Number:</label>
                            </div>
                            <div class="col-sm-8">
                                <input type="text" ng-maxlength="30" class="form-control" placeholder="Enter JV Number" id="txtJVNumber" name="txtJVNumber" ng-model="formCtrl.AddCheckDeposit.JVNumber" />
                            </div>
                        </div> 

编辑#1

我在阅读完文档后将字段更改为以下内容,但仍未收到任何警告。

你能不能让我知道正确的语法应该是什么?

<div class="col-sm-8">
                                <input type="text" ng-maxlength="30" class="form-control" placeholder="Enter JV Number" id="txtJVNumber" name="txtJVNumber" ng-model="formCtrl.AddCheckDeposit.JVNumber" />
                                <p class="help-block" ng-show="warrantyForm.txtJVNumber.$error.maxlength">Max characters of 30 exceeded</p>
                            </div>

1 个答案:

答案 0 :(得分:2)

错误不会显示自身。 您必须添加一个html元素来显示错误

使用ngMessages,它是一个指令,用于根据侦听的键/值对象的状态显示和隐藏消息。该指令本身使用ngModel $ error对象(存储验证错误的键/值状态)来补充错误消息报告,请参考angularJs documentation

例如:

<div ng-messages="formName.txtJVNumber.$error" role="alert">
    <div ng-message="maxlength">Your field is too long</div>
</div>

Live demo根据你的jsFiddle