【发布时间】:2014-12-05 14:46:34
【问题描述】:
这是我当前为我的表单设置的验证
<ng-messages for="searchForm.$error" ng-if="searchForm.$submitted">
<ng-message when="required" class="error-message">This search field is required.</ng-message>
</ng-messages>
还有我的表格
<form role="form" ng-submit="searchForm.$valid && searchcode()" name="searchForm" novalidate>
效果很好。
但这是我不喜欢这种情况的地方
1) 在空搜索框上按 Enter -> 它显示正确的消息“必填字段”
2) 开始输入和擦除文本而不按回车 - > 它再次显示错误消息
这是我不想要的第二种情况……有什么想法吗?
【问题讨论】:
-
你为什么使用
searchForm.searchQuery.$touched?这可能是你得到这种行为的原因。尝试只使用searchForm.$submitted -
摆脱它并刚刚提交但行为相同......似乎在第一次提交后表单保持在“提交”状态,并且该错误消息只会在文本框为空时显示而是再次提交时
-
This post 可能会对您有所帮助。
-
还有一个小提琴演示会有所帮助。
-
我也认为,如果你用 $pristine 替换 ng-if 中的 $touched 部分。确保在提交表单后使用 $setPristine 设置表单。
标签: javascript angularjs validation