【发布时间】:2014-01-22 20:51:25
【问题描述】:
我遇到了一个问题,即当浏览器自动填充字段时我的模型不会更新。我选择了Ezekiel Victor 的答案,看起来像我需要的,但我在实施时遇到了麻烦。
angular.module('roomsApp.directives', []).directive('formAutofillFix', ['$timeout',
function ($timeout) {
return function(scope, elem, attrs) {
// Fixes Chrome bug: https://groups.google.com/forum/#!topic/angular/6NlucSskQjY
elem.prop('method', 'POST');
// Fix autofill issues where Angular doesn't know about autofilled inputs
if(attrs.ngSubmit) {
setTimeout(function() {
elem.unbind('submit').submit(function(e) {
e.preventDefault();
elem.find('input, textarea, select').trigger('input').trigger('change').trigger('keydown');
scope.$apply(attrs.ngSubmit);
});
}, 0);
}
};
});
我收到一条错误消息:
elem.unbind('submit').submit(function(e) {
在 Firefox 中:elem.unbind(...).submit 不是函数
在 Chrome 中:Object [object Object] 没有方法 'submit'
在网上搜索后,导致此错误的最常见情况是输入字段名为“提交”,但我的并没有遇到该特定问题
<form form-autofill-fix ng-submit="login()" id="login-fields">
<input form="login-fields" ng-model="userLogin" type="email" name="username" ng-required/>
<input form="login-fields" ng-model="userPassword" type="password" name="password" ng-required />
<button form="login-fields" name="login"">Login </button>
</form>
我将不胜感激。
参考资料:
http://victorblog.com/2014/01/12/fixing-autocomplete-autofill-on-angularjs-form-submit/
"Submit is not a function" error in JavaScript
【问题讨论】:
标签: javascript angularjs