在提交表单时,如何让AngularJS单页面应用程序在浏览器的自动填充设置中注册用户输入? Angular并没有真正以“默认”方式提交表单,因此浏览器不会捕获输入。
以下内容不会保存在Chrome的自动填充中:
<form id="header-search" class="navbar-form form-inline" ng-submit="submit()">
<input type="search" name="q" ng-model="Search.term" ng-required="true"/>
<button type="submit" class="btn btn-default glyphicon glyphicon-search"></button>
</form>
它适用于<form action='/search'>
,但我不是通过发布和回来来破坏我的SPA行为。
答案 0 :(得分:0)
没有任何代码,很难说出问题所在。将angular forms与ngSubmit一起使用,应该允许以足够正常的方式提交表单以触发自动填充。
答案 1 :(得分:0)
我在登录表单上遇到了类似问题,Chrome自动填充了用户名和密码。我在代码中添加了登录控制器:
$(document).ready( function() {
$timeout(function(){
$scope.username = $('div#login input[name="username"]').val();
$scope.password = $('div#login input[name="password"]').val();
},300);
});
您还可以尝试触发所有输入元素的输入以强制更新ngModel。我认为这也应该有效。
$('yourInputsIdentifier').trigger('input');