Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度验证器和ng maxlength使用_Javascript_Angularjs_Forms_Validation_Angularjs Forms - Fatal编程技术网

Javascript 角度验证器和ng maxlength使用

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,如果输入长度超过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="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>