0

我有一个表单,其中我仅在提交页面时显示验证错误,如下面的代码所示。此验证工作正常,但只要用户更正输入字段上的验证。验证消息立即消失。有没有办法在用户再次提交页面之前保留此验证消息?我的要求是验证消息应该只在页面提交时出现和消失。

<span id="error" ng-if="addForm.$submitted">
        <div class="ErrorMsgBox">
            <ul>
                <li ng-messages="addForm.startDate.$error">
                    <small id="startDate_req" ng-message="required">Date is mandatory.</small>                      
                </li>                   
            </ul>
        </div>
    </span>

例如,如果用户没有给出日期并提交了表单,则会向用户显示一条验证消息“日期为必填项”。现在,当用户输入任何值时,消息就会出现。我需要保留此验证消息,直到页面再次提交。

我尝试了 ng-model-options 但在提交页面之前输入字段不会保留该值。

ng-model-options="{ updateOn: 'submit' }"

请建议。

4

1 回答 1

0

您可以ng-if结合form.$dirty或添加form.$submitted到您的消息指令。您也可以创建自己的自定义函数

ng-if: showErrors()

请参阅:https ://www.sitepoint.com/easy-form-validation-angularjs-ngmessages/

<label>User Message:</label>
<textarea type="text" name="userMessage" ng-model="message" 
          ng-minlength="100" ng-maxlength="1000" required>
</textarea>
<div ng-messages="exampleForm.userMessage.$error" 
     ng-if="exampleForm.userMessage.$dirty">
  <div ng-message="required">This field is required</div>
  <div ng-message="minlength">Message must be over 100 characters</div>
  <div ng-message="maxlength">Message must not exceed 1000 characters</div>
</div>

于 2016-06-05T14:41:19.813 回答