Обновление Angular JS ng-сообщения только при отправке страницы

0

У меня есть форма, в которой я показываю ошибки проверки только на странице 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' }"

Пожалуйста, предложите.

  • 0
    используйте атрибут ng-pattern, чтобы установить шаблон проверки даты. Или, если сообщение отображается в определенное время, используйте только любую переменную области действия с помощью ng-show / ng-hide.
  • 0
    Да, я мог бы добиться этого, используя ng-show / ng-if с пролетом, но я хотел бы использовать ng-message и все же выполнить то же требование из-за различных преимуществ, предлагаемых ng-message. Использование ng-if с ng-resource не помогает, проверка по-прежнему проходит без отправки страницы.
Показать ещё 4 комментария
Теги:
validation
ng-messages

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>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню