2

angularjs (v1.2.26) アプリケーションを開発しています。そして、資格情報を入力するために、KeePass (v2.28)、chromeIPass 2.6.8 (Google Chrome 拡張機能) を使用しました。

ログイン フォームで問題が発生しました。

この場合、angularjs は値を検出せず、フォームを無効と見なします(接続できません)。 ここに画像の説明を入力

以下で少し回避策を試しますが、これは毎回うまくいかないようです。これを解決する方法について何か考えはありますか?


ng-controller で使用される回避策 (毎回は機能しません):

$scope.focusLogin = function() {
  // try to avoid 'form invalid' state when browser auto-complete form fields
  $('#LoginView_Password').focus();
  $('#LoginView_Password').change();
  $('#LoginView_Password').focus();
  $('#LoginView_Username').focus();
  $('#LoginView_Username').change();
  $('#LoginView_Username').focus();
};
setTimeout($scope.focusLogin, 500);
4

1 に答える 1

0

Auth0メカニズムに切り替えたので、このログイン フォームはもうありません。

とにかく、「トリガー」を使用してこの小さな回避策を見つけました(ログインコントローラーに入れるため)。サードパーティ (例: keepass プラグイン) がフォームに入力しているかどうかを毎秒チェックする例:

  $scope.needLogin = true;
  $scope.focusLogin = function() {
    // avoid 'form invalid' state when browser auto-complete form fields
    $('#LoginView_Username').trigger('input');
    $('#LoginView_Password').trigger('input');
    if (!$scope.loginForm.$invalid) {
      // commonService.info('ok, click on login button');
      $scope.needLogin = false;
    }
    if (!$scope.needLogin) {
      return;
    }
    setTimeout($scope.focusLogin, 1000);
  };
于 2015-09-29T13:45:29.477 に答える