2015-05-09 5 views
3

Я хочу предупредить пользователя, если поле формы коснулось и осталось пустым. Я могу проверить, коснется ли пустое поле $pristine. Но если я предварительно загружаю данные формы из $scope, $pristine не работает. Кроме того, я не хочу использовать параметр required, я хочу только ввести предупредительный стиль ng-class.Как проверить, что поле формы коснулось и пустое в Угловом

<div ng-class="{'has-warning': !form.name.$pristine}"> 
    <input type="text" name="name" ng-model="people.name"> 
</div> 
+0

кажется, что вы описываете ' обязательно 'так почему бы вам хотите использовать его? Предупреждающий экран css не будет проверять само поле – charlietfl

+1

Я хочу проверить форму с помощью 'required', но это поле не обязательно, и я хочу только предупредить пользователя. – Pekka

ответ

1

Вы можете попробовать использовать ngFocus:

Укажите пользовательское поведение на событие фокуса.

https://docs.angularjs.org/api/ng/directive/ngFocus

<div ng-class="{'has-warning': !form.name.isValid}"> 
    <input type="text" name="name" ng-model="people.name" ng-focus="form.name.isValid = people.name ? true : false"> 
</div> 
+0

Не работает так, как планировалось – Pekka

4

Есть несколько государственного свойства, установленное на ngModel описанных here. Вы можете захотеть использовать form.name. $ Dirty или form.name.

редактировать

Попробуйте использовать:

ng-class="{'has-warning': form.name.$touched && people.name.length === 0}" 
+0

Комбинация '$ pristine' и $ empty будет работать, но нет пустого состояния. – Pekka

+0

не забудьте добавить

прилагаемый тег с атрибутом имени .. это значение должно идти туда, где RobJ put 'form' – Victor

0

Я хотел бы предложить использовать:

form.name.$touched && form.name.$invalid 

он должен работать

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