2015-05-09 59 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

有描述here上ngModel设置几个状态属性。你可能想要考虑使用form.name。$ dirty或form.name。$来代替。

编辑

尝试使用:

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

'$ pristine'和$ empty的组合可以工作,但没有$ empty状态。 – Pekka

+0

不要忘记添加一个

封闭标签的名称属性..该值应该在哪里RobJ把'形式' – Victor

0

我会建议使用:

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

它应该工作

相关问题