从AngularJS的单页应用程序中节省Chrome的自动填充



提交表单时,如何让我的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');

最新更新