Javascript 角度验证器和ng maxlength使用
我有以下div,如果输入长度超过50个字符,我想添加引导程序的类“has error”。这是HTML:Javascript 角度验证器和ng maxlength使用,javascript,angularjs,forms,validation,angularjs-forms,Javascript,Angularjs,Forms,Validation,Angularjs Forms,我有以下div,如果输入长度超过50个字符,我想添加引导程序的类“has error”。这是HTML: <div class="form-group" ng-class="{has-error:[formData.titulo.$error]}"> <label for="inputTitulo">Título</label> <input type="titulo" class="form-control" id="inputTitu
<div class="form-group" ng-class="{has-error:[formData.titulo.$error]}">
<label for="inputTitulo">Título</label>
<input type="titulo" class="form-control" id="inputTitulo"
maxlength="50" ng-maxlength="50" ng-model="formData.titulo">
</div>
蒂图罗
我怎样才能做到这一点?我猜当您达到50个字符时,ng maxlength会抛出一个错误,比如$error对象,但我不知道对象是什么,如何访问它,以及是否需要在控制器或指令中做更多工作
有人帮忙吗?我找不到任何关于这个问题和角度验证器的“简单”信息
编辑1:
感谢你,我看到了你所有的反应,学到了一些新的东西,但不知怎么的,这仍然不起作用。目前是这样的:
<div class="form-group" ng-class="{'has-error': formData.titulo.$error.maxlength}">
<label for="inputTitulo">Título</label>
<input type="titulo" class="form-control" id="inputTitulo" maxlength="50" ng-maxlength="50" ng-model="formData.titulo">
</div>
蒂图罗
还测试了直接检查长度,正如你们中的一位所建议的。但这些解决方案似乎都不起作用:它从不添加has error类。为什么?当您使用ng模型进行验证时,此类ng invalid将添加到您的输入中 文件: 要使用$error,您需要使用表单和名称而不是ng模型来访问它,并且ng类应该绑定到$error.maxlength而不仅仅是$error
教程:要在作用域上发布错误,需要
表单
指令
<div ng-form="form1" ng-class="{'has-error': form1.text1.$error.maxlength}">
<input name="text1" ng-model="formData.foo" ng-maxlength="50">
</div>
如果使用maxlength,用户将永远无法输入超过该长度的字符,因此您将永远不会得到ng maxlength错误。在IMHO中同时使用maxlength和ngMaxlength是没有意义的
请参阅上的示例(在plunker中打开示例并添加maxlength属性)如果您只想使用maxlength进行验证,则可以使用
ng class=“{has error:formData.titulo.$error.maxlength}”
正如我在下面解释的,输入的ngModelController
在指令的名称下发布。您需要将name=“titulo”
添加到您的输入中,以便您尝试工作。是的,这将更加明确,谢谢。。。(我没有使用它,因为ng maxlength
是唯一应用的验证指令)现在看起来很完美+1.
<div ng-class="{'has-error': formData.foo.length > 50}>
<input ng-model="formData.foo">
</div>