2017-09-13 32 views
0

假設你有一個輸入字段中的角JS應用在角JS點擊關閉輸入字段事件

<input id="title" type="text" name="title" placeholder="enter a title" ng-model="item.title" /> 

我想展示一些反饋關於輸入數據的有效性的用戶之後,用戶必須完成與輸入交互,但我不能想到一個指令來觀看「點擊」事件。也就是說,當用戶輸入表單時,然後選擇下一個選項卡或單擊其他任何地方。

如何捕獲「單擊和元素」事件。

請注意,這與「脫離點擊」事件形成對比,事件是指用戶在任何地方點擊但不是給定元素。

回答

1

您需要使用ng-blur指令。

NG-模糊:

指定的模糊事件自定義行爲。

模糊事件在元素失去焦點時觸發。

注:您在ng-blur看到打印無非是console.log使用此爲方便起見,請參閱我的小提琴!

JSFiddle Demo

JS:

<div ng-controller='MyController' ng-app="myApp"> 
    <input id="title" type="text" name="title" placeholder="enter a title" ng-model="item.title" ng-blur="print('lost focus')" /> 
</div> 

參考文獻:

  1. ng-blur
1

正如納倫的回答中所提到的,ngBlur是您正在尋找的指令。

但是,由於您試圖實現驗證,因此您應該知道角度具有內置的驗證功能,可以爲您處理事件,並且使用它們比重新驗證「車輪」更好。

使用像ngRequired,ngMinlength,ngMaxlength和ngPattern這樣的驗證指令來進行簡單的驗證需求。

https://docs.angularjs.org/guide/forms

使用角UI的uiValidate僞指令,包括通過異步HTTP請求驗證的自定義驗證。

https://github.com/angular-ui/ui-validate

+0

是的,我採用了棱角分明的確認僞也。謝謝。但我不相信有模糊的東西,是嗎? – yevg

+0

默認情況下,角度驗證指令觸發輸入或模糊。如果你只想模糊,你可以在ngModelOptions中指定。 –