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

它應該工作

相關問題