从AngularJS的单页应用程序中保存Chrome的自动填充功能

时间:2014-10-04 15:26:44

标签: angularjs single-page-application autofill

在提交表单时,如何让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行为。

2 个答案:

答案 0 :(得分:0)

没有任何代码,很难说出问题所在。将angular formsngSubmit一起使用,应该允许以足够正常的方式提交表单以触发自动填充。

答案 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');