我在plunker中写了一些样本。我需要在用户离开时验证我的输入。我使用了ng-model-options="{ updateon: 'blur'}"
。 ng-minlength
工作正常,但这并不适用于ng-required
验证。
答案 0 :(得分:1)
(编辑,删除另一个例子,因为它令人困惑)
尝试$ touch。
我已经把你的Plunk分开了
http://plnkr.co/edit/tt5A1DUjmq07TiEKhtNP?p=preview
我还添加了两个字段,以便您可以看到它有效,例如从一个到另一个的标签。
HTML
<input name="inputA" type="text" ng-model="valueA" ng-required="true" ng-model-options="{updateOn: 'blur'}" ng-minlength="3" />
<span ng-if="myForm.inputA.$error.required && myForm.inputA.$touched">You didn't enter a value</span>
<span ng-if="myForm.inputA.$error.minlength">to short</span>
<br/>
<input name="inputB" type="text" ng-model="valueB" ng-required="true" ng-model-options="{updateOn: 'blur'}" ng-minlength="3" />
<span ng-if="myForm.inputB.$error.required && myForm.inputB.$touched">You didn't enter a value</span>
<span ng-if="myForm.inputB.$error.minlength">to short</span>
答案 1 :(得分:1)
我相信你应该使用 updateOn
ng-model-options="{updateOn: 'blur'}"
与
一起novalidate=""
表格上的
答案 2 :(得分:0)
如果您在输入中添加ng-focus="blur = false" ng-blur="blur=!blur"
并将ng-if
更改为"myForm.input.$error.required && blur">
,则当输入重新获得焦点时,该消息将消失,如果为空则显示为模糊。