2017-06-07 5 views
0

AngularJsを使用して、入力フィールドの値を$scope.newPasswordに保存しようとしていますが、少なくとも6文字を入力した後にのみ機能します。それはデフォルトの動作ですか、それともそれを処理する方法がありますか?以上の6つの文字がある場合を除き必要な入力フィールドでパターンが一致するまで値を取得できません

<input type="password" class="form-control" id="new-password" ng-model="newPassword" name="new-password" required pattern=".{6,}"> 

JS

app.controller('validationController', function($scope) { 
     $scope.noMatch = false; 
     $scope.newPassword=""; 
     $scope.confirmNewPassword=""; 
     $scope.passMatchTest = function(){ 
      if($scope.newPassword!=$scope.confirmNewPassword){ 
       $scope.noMatch = true; 
       $("#new-password, #confirm-new-password").css("background-color", "#f0b9b9"); 
      }else{ 
       $scope.noMatch = false; 
       $("#new-password, #confirm-new-password").css("background-color", "#aff3af"); 
      } 
     }; 
     $scope.$watch("newPassword", function(){ 
      console.log($scope.newPassword); 
      $scope.passMatchTest(); 

     }); 
     $scope.$watch("confirmNewPassword", function(){ 
      console.log($scope.confirmNewPassword); 
      $scope.passMatchTest(); 
     }); 
    }); 

console.logが未定義示し

HTML:

はここにいくつかのコードです。

+3

条件を必要としない場合は、remove pattern = "。{6、}"をマークアップ –

答えて

2

またはng-patternを使用している場合、角度はデフォルトで無効な値の反映を停止します。 ng-model-options="{allowInvalid: true}"を追加すると、無効な値をng-modelに設定することができます。

+0

よろしくお願いいたします。 –

関連する問題