У меня есть форма, в которой я показываю ошибки проверки только на странице submit, как в приведенном ниже коде. Эта проверка работает отлично, но как только пользователь исправляет валидацию в поле ввода. Сообщение о проверке немедленно уходит. Есть ли способ сохранить это сообщение проверки, пока пользователь не отправит страницу еще раз? Мое требование состоит в том, что сообщения проверки должны появляться и исчезать только на странице.
<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' }"
Пожалуйста, предложите.
Вы можете добавить 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>