2015-08-21 1 views
0

У меня есть форма, в которой я показываю ошибки проверки только на странице submit, как в коде ниже. Эта проверка работает отлично, но как только пользователь исправляет валидацию в поле ввода. Сообщение о проверке немедленно уходит. Есть ли способ сохранить это сообщение проверки, пока пользователь не отправит страницу еще раз? Мое требование состоит в том, что сообщения проверки должны появляться и исчезать только на странице.Угловое обновление JS ng-message только на странице 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-show/ng-hide. –

+0

Да, я мог бы достичь этого, используя ng-show/ng-if с диапазоном, но я бы хотел использовать ng-message и все еще добиваться того же требования из-за различных преимуществ предложений ng-message. Использование ng-if с ng-ресурсом не помогает, проверка все равно исчезает без отправки страницы. – Vallikranth

+0

Затем используйте ng-pattern для проверки ввода для шаблона даты, который вы хотите ввести пользователю. –

ответ

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>

Смежные вопросы