AngularJS文本框在使用$ setValidity(" required",false)设置为必需后未更改为有效

时间:2016-01-25 15:33:41

标签: javascript jquery angularjs

我有文本框,使用我的JQuery文件中的以下代码在按钮点击事件上设置为必填字段

>             document.getElementById("txtboxID").required = true;
>             $scope.txtboxID = '';
>             $scope.FormName.txtboxID.$setValidity("required", false);

文本框HTML代码

<div class="col-sm-8" ng-class="{ 'has-error' : FormName.@txtboxID.$invalid  }">  
<input type="text" id="txtboxID" name="txtboxID" class="form-control" ng-model="txtboxID" >  
<p ng-show="FormName.txtboxID.$error.required" class="help-block col-xs-12 col-sm-reset inline">Text box is required</p>  
</div>

按钮点击事件后 - &gt;文本框需要验证工作正常。 enter image description here

但是在我输入textBox类名

之后
  

&n- ng-invalid-required ng-invalid&#39;

没有变化。请参阅下面的快照。

enter image description here

1 个答案:

答案 0 :(得分:1)

正如the documentation所说,您需要使用Angular的ng-required指令才能正确使用该属性。它允许您根据布尔$scope变量有条件地设置字段的要求。

示例:

<input type="text" id="txtboxID" name="txtboxID" class="form-control" ng-model="txtboxID" ng-required="txtboxRequired">

txtboxRequired是Angular控制器范围内的变量,可自行决定是否打开和关闭。我强烈建议确保切换此函数的函数是$scope变量中的函数,并且只能使用ng-click(或控制器中的其他内容)调用它。

通常,您不应该尝试在Angular应用程序中操作DOM。