2017-09-13 33 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中指定。 –