angualrjs - поле формы `username` не работает ни для` $ pristine`, ни для `$ error.required`

0

Я создаю пользовательские поля формы. Я пытаюсь выбросить ошибку, когда пользователь нажимает кнопку submit в поле username.

но по некоторым причинам он не работает. вот мое поле username:

<form name="myform" ng-submit="formSubmit()" novalidate>

      <input ng-model="fields.name.title" 
      placeholder="Enter your name" name="username" type="text"  required>

      <span ng-show="myform.username.$error.required && !myform.username.$pristine">Invalid name</span>

      <drop-down data="fields.levels" func='levelHandler'></drop-down>

      <drop-down data="fields.stages" func='levelHandler'></drop-down>

      <drop-down data="fields.colors" func='levelHandler'></drop-down>

      <button type="submit">Submit Form</button>

    </form>

Демо-версия

кто-нибудь мне помогает?

  • 0
    Это на самом деле работает, но я думаю, что ваша логика отключена. Пролёт работает только при выполнении обоих условий: поле пустое (нарушает обязательное) и было изменено (нарушает $pristine ). Поэтому он показывает, когда вы вводите значение, а затем полностью его удаляете, и ни в каком другом случае. Это то, что вы ожидали?
Теги:

2 ответа

1
Лучший ответ

Это связано с тем, что ваше $pristine свойство истинно, если вы не введете что-то в форму (сделайте это грязным).

Попробуйте вместо этого проверить $submitted.

<span ng-show="myform.username.$error.required && myform.$submitted">Invalid name</span>
1

Измените! Myform.username. $ Pristine с myform. $, Представленный в вашем атрибуте ng-show

Полный код должен выглядеть так:

<form name="myform" ng-submit="formSubmit()" novalidate>

      <input ng-model="fields.name.title" 
      placeholder="Enter your name" name="username" type="text"  required>

      <span ng-show="myform.username.$error.required && myform.$submitted">Invalid name</span>

      <drop-down data="fields.levels" func='levelHandler'></drop-down>

      <drop-down data="fields.stages" func='levelHandler'></drop-down>

      <drop-down data="fields.colors" func='levelHandler'></drop-down>

      <button type="submit">Submit Form</button>

    </form>

Ещё вопросы

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