【发布时间】:2015-06-09 20:03:42
【问题描述】:
我是 Angular JS 的新手,我正在使用 Angular Js 对登录页面进行表单验证。如果我输入用户名和密码,它工作正常但是如果我在浏览器中选择记住凭据并下次选择自动完成选项,我的提交按钮未启用。我只在 IE9 中遇到这个问题。对于其他浏览器来说,它工作正常。对此有任何建议。我的 login.html 看起来像这样:
<input ng-model="username"
class="login"
value=""
name="userId"
type="text"
required/>
<input ng-model="password"
class="login"
value=""
name="password"
type="password"
required/>
<button class="primaryButton"
type="submit"
ng-click="loginUser()"
ng-disabled="loginForm.$invalid"/>
另外,根据一篇博客,我尝试为此添加指令。通过添加指令,如果我选择自动完成选项并且只需鼠标单击某处,则启用提交按钮。但我不想在选择自动完成选项后点击。 我的指令如下所示:
angular.module('sampleModule').directive('autofill', function autofill(){
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, element, attrs, ngModel) {
scope.$watch(function () {
return element.val();
}, function(nv, ov) {
if(nv !== ov) {
ngModel.$setViewValue(nv);
}
});
}
};
})
【问题讨论】:
-
等等!使用 jquery 事件来监视元素更改......但我使用了一个简单的超时函数来监视它。我将在下面发布我的代码