【问题标题】:Pause OnBlur validation input form AngularJS暂停 OnBlur 验证输入表单 AngularJS
【发布时间】:2023-04-03 00:17:01
【问题描述】:

问题是我将表单发送到服务器,如果电子邮件已在使用中,“已在使用”的错误消息显示正常,但如果用户想点击“恢复密码”链接,他不能,因为输入的“模糊”事件被触发并且消息被隐藏。 我可以在服务器错误响应后暂停输入的“模糊”事件吗?我该如何解决这个问题? 我希望在用户再次单击提交按钮之前保持错误可见。 AngularJS 版本是 1.4.9。 感谢您的帮助。 代码:

<form id="registerForm" name="registerForm" ng-submit="createUser($event)">
        <label for="email">Email</label>
    <input type="text" id="email" name="email" 
        ng-model-options="{ updateOn: 'blur' }" 
        ng-model="register.email" required>
    <div ng-messages="registerForm.email.$error" ng-Show="registerForm.email.$dirty && registerForm.email.$invalid">
        <div class="form-error is-visible" ng-message="required">required</div>
        <div class="form-error is-visible" ng-message="alreadyTaken">Email already in use. <a href="/recover-password">Do you want to recover the password?</a></div>
    </div>
</form>

【问题讨论】:

  • 在服务器返回响应后进行更改,应用控制器中的逻辑。我不建议延迟或类似下面给出的答案。

标签: angularjs forms validation input angular-ngmodel


【解决方案1】:

您可以使用debounce 选项延迟更新。

试试:

ng-model-options="{ updateOn: 'blur', debounce: { 'blur': 500 } }" 模糊延迟半秒

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多