我有一个表单,我只需要提交表单,我使用以下角点synatax成功验证了
form1.inputvalue.$invalid && form1.$submitted
现在,一旦显示错误,它就会在实时输入(或键盘)更改时开始验证值。我的客户不想在密钥上验证它。并且在更改输入时应该隐藏消息,并且应该在第二次单击提交按钮时再次验证。听起来很奇怪但需要:)。
我在ng-change of input上尝试了ng-hide =“true”。但它不会在控制台中触发。你可以帮助我在哪里找不到
$scope.hidevalidate = function(){
console.log("coming to hide");
$scope.hidevalidation = true;
console.log("hidden");
};
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<form name="frmdata" novalidate>
<input type="text"
class="class1"
name="item1"
ng-model="frmdata.item1"
id="item"
ng-change="hidevalidate()"
ng-blur="focusout('item1');"
ng-disabled="disableItem1"
ng-pattern="/^([0-9]{1,25})?$/"
ng-model-options="{allowInvalid: true}">
</input>
<div ng-show="frmdata.item1.$invalid && form1.$submitted" >
<div ng-hide="hidevalidation" class="error-message">Item should not be empty (or) only numbers allowed</div>
</div>
</form>
答案 0 :(得分:0)
您可以使用form1.$setPristine()
标记表单,因为它是全新的,所以理论上它应该就像您第一次来到页面一样(所以如果您的逻辑第一次正确处理这个问题,它应该在此之后)。
请参阅https://docs.angularjs.org/api/ng/type/form.FormController
答案 1 :(得分:0)
您可以在单击执行所有检查的提交按钮时调用方法,并将属性novalidate添加到表单中,这样它就不会检查任何内容,因为此方法会检查所有内容并设置所有错误(如果有的话) )。