自动填充="上"在Angular ng-submit

时间:2015-06-04 09:02:28

标签: angularjs google-chrome post autocomplete submit

我使用ng-submit提交角度表单。这是我正在处理的代码。

      <form class="awesome-form" id="loginForm" name="loginForm" ng-submit="submit();" novalidate>
      <div class="input-group">

      <input id="loginEmailAddress" name="loginEmailAddress"
            ng-model="login.loginId" 
            ng-pattern="/^[_a-zA-Z0-9]+(\.[_a-zA-Z0-9]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4})$/"
            ng-keyup = "checkType($event,'login-label');"
            required="" type="text" autocomplete="on">
       <label id="login-label">Email</label>
       </div>
       <span class="icon-close" ng-show="!loginForm.loginEmailAddress.$error.required"
        ng-click="clear()"></span>
       </div>

       /*some other form elements come here*/

       <button class="login-button-blue" 
        ng-disabled="!(loginForm.loginEmailAddress.$valid  && loginForm.loginPassword.$valid)" type="submit">SIGN IN</button>

        </form>

提交方法正在调用服务,该服务又发送http post请求。

        $scope.submit = function() {
                          SampleService.sampleMethod(angular.toJson(request)).then(function(successData){
            /**do something**/
                  }
        }

样本服务如下:

     app.service('SampleService', ['$http', '$q', function ($http, $q) {
          this.sampleMethod= function (request) {
              var deferred = $q.defer();
              $http.post("url", request).success(function (data, status,   headers, config) {
                deferred.resolve(data);
             }).error(function (data, status, headers, config) {
               deferred.reject(data);
             });
             return deferred.promise;
          };
     }]);

成功提交表单后,我希望浏览器的原生自动填充功能能够正常运行。当我下次输入时,电子邮件地址将自动完成。

它在firefox中成功,但在chrome中不成功。我尝试了其他堆栈溢出问题中提到的几种方法。但事实证明这些解决方案毫无用处。

Trigger autocomplete without submitting a form

在该问题的解决方案中已经给出了一个小提琴,它在所有浏览器中都有效(http://jsfiddle.net/6cve0z98/)。但它也不适合我。

  1. 我使用的是Chrome版本41.0.2272.118。
  2. 使用post方法。
  3. 浏览器本身是问题还是我做错了?帮助我解决方案。提前谢谢。

0 个答案:

没有答案