0
これは私の部分的な見解の一部です。関数内の入力値が未定義です
<div class="form-group row">
<label for="password" class="col-sm-2 form-control-label">Password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="password" placeholder="Password" ng-model="password" required>
</div>
</div>
<div class="form-group row">
<label for="confirmPassword" class="col-sm-2 form-control-label">Confirm Password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="confirmPassword" placeholder="Confirm Password" required>
</div>
</div>
これは私のコントローラの一部である -
self.password = document.getElementById("password");
self.confirmPassword = document.getElementById("confirmPassword");
angular.element(self.confirmPassword).on("input", function() {
var closest = self.confirmPassword.closest('div');
console.log(self.password.value); //undefined
if(self.password.value != self.confirmPassword.value) {
closest.classList.remove("has-success");
closest.className += " has-error";
} else {
closest.classList.remove("has-error");
closest.className += " has-success";
};
});
self.password.value
関数内で定義されていないのはなぜ。私の最終的な目標は、パスワードがパスワードを確認するのと等価でない場合にクラスhas-error
を追加し、パスワードがパスワードを確認するのと等しい場合はクラスhas-success
を追加することです。
これを確認してください。 'document.getElementById'を使って要素にアクセスするのではなく、データバインディングとディレクティブを使うことを提案していますが、https://plnkr.co/edit/9GwoINvY4Gl5ZBvBo19Q?p=previewでうまく動作します。 – S4beR