Pro*_*imo 25 validation focus onchange angularjs
我正在AngularJS中进行验证,如果有3种类型的错误,我会显示一个div.
对于required,我只想在页面以空值提交时显示错误消息
<div class="error" data-ng-show="submitted && mainForm.email.$error.required" />
Run Code Online (Sandbox Code Playgroud)
对于正则表达式验证,我希望它标记实时的默认行为.
<div class="error" data-ng-show="mainForm.email.$error.pattern" />
Run Code Online (Sandbox Code Playgroud)
我面临的问题是minlength.我不想在打字时显示它.这很烦人,因为他们还没有完成打字.我也不想在提交时显示它,我认为为时已晚.当它们不再是元素的焦点时,我想展示它.
如果//mainForm.email.$focus存在,我可以简单地这样做
<div class="error" data-ng-show="mainForm.email.$error.minlength &&
!mainForm.email.$focus"/>
Run Code Online (Sandbox Code Playgroud)
有人知道有什么方法可以做这种检查或任何非抽出的替代方案吗?
谢谢!
Sah*_*ahu 49
是的,
您可以将ngFocus和ngBlur用于此目的
这是代码
<form name="mainForm">
<span ng-show="mainForm.email.$error.pattern && !focus">error here</span>
<input name="email" ng-pattern="..." ng-focus="focus=true" ng-blur="focus=false" type="text" />
</form>
Run Code Online (Sandbox Code Playgroud)
ngFocus和ngBlur采用表达式和ngShow显示真实的评估
您需要了解ModelOptions,debounce和updateOn可以延迟模型更改触发器事件或触发DOM事件更改https://docs.angularjs.org/api/ng/directive/ngModelOptions
检查页面上的示例
<div ng-controller="ExampleController">
<form name="userForm">
Name:
<input type="text" name="userName"
ng-model="user.name"
ng-model-options="{ updateOn: 'blur' }"
ng-keyup="cancel($event)" /><br />
Other data:
<input type="text" ng-model="user.data" /><br />
</form>
<pre>user.name = <span ng-bind="user.name"></span></pre>
</div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34776 次 |
| 最近记录: |