提交表单时,如何让我的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行为。
如果没有任何代码,很难判断问题所在。使用带ngSubmit的角度表单,应该可以以足够正常的方式提交表单,从而触发自动完成。
我在登录表单上遇到了类似的问题,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');