我的输入类型为email
:
<input type="email" ng-model="user.email" name="email" required>
现在我需要执行一些代码每当输入更改时。添加ng-change="emailInputChanged()"
仅执行我的方法,以防输入的字符串是有效的电子邮件地址,但我需要使用每次按键执行回调,即使输入不是验证。 (同样的问题当然是在观看模型的时候$scope.$watch('user.email', emailInputChanged)
。
任何有角度的方式吗?
答案 0 :(得分:2)
由于您已将类型指定为电子邮件,因此仅当其有效时才会调用 ng-change ,因此请删除类型属性
答案 1 :(得分:2)
请改用ng-keyup
。即使使用基本(本机或jQuery)事件,这也是相同的,因为表单只会对场模糊做出正常反应。
要捕获粘贴事件,请使用ng-paste
指令(请参阅https://code.angularjs.org/1.4.6/docs/api/ng/directive/ngPaste)
答案 2 :(得分:2)
我建议使用onInput事件:http://www.w3schools.com/jsref/event_oninput.asp 创建一个自定义指令并监听&#34;输入&#34;文本字段元素上的事件。
指令实施示例:
function OnInput() {
return {
restrict: 'A',
template: '',
scope: {
whenInputChanged: '&'
},
link: function($scope, $element, $attrs) {
$element.on('input', $scope.whenInputChanged);
}
};
}
angular.module('App')
.directive('onInput', OnInput);
要在模板中应用事件侦听器:
<input type="email" on-input when-input-changed="change()" name="email" required/>
享受!