Привет, я пытаюсь понять, что не так с моим кодом. Код должен подтверждать пароль с требованием наличия нескольких специальных символов и установки его минимальной длины.
Мне нужно установить правильную длину, но я не могу заставить работать файл директив.
app.directive('myPassord',function()
{
return{
require:'ngModel',
link:function(scope,element,attr,myFormCtrl){
function myValidation(value)
{
if (value.indexOf("$") > -1 || value.indexOf("%") > -1 || value.indexOf("^") > -1 || value.indexOf("&") > -1 || value.indexOf("*") > -1){
myCtrl.$setValidity('Charactervalidator', false);
}else{
myCtrl.$setValidity('Charactervalidator', false);
}
return value;
}
myFormCtrl.$parsers.push(myValidation);
}
}
});
HTML-файл
<div ng-controller = "myFormCtrl" class = "form-group">
<form name = "Form1" novalidate = "novalidate" class = "Form1">
<p>
<label for = "password1" class= "col-lg-2">Password</label>
<input type = "text" name = "Password1" ng-model = "user.password" ng-minlength = "8" required data-my-password>
<span ng-show = "Form1.Password1.$touched && Form1.Password1.$invalid" style = "color:red"> Password must contain at least 8 characters and a special character</span>
</p>
</form>
</div>






Исправляю твой код. Попробуйте этот код. Надеюсь, это поможет тебе
<!DOCTYPE html>
<html>
<script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body ng-app = "myApp">
<div class = "form-group">
<form name = "Form1" novalidate = "novalidate" class = "Form1">
<p>
<label for = "password1" class = "col-lg-2">Password</label>
<input type = "text" name = "Password1" ng-model = "user.password" ng-minlength = "8" required my-password>
<span ng-show = "Form1.Password1.$touched && Form1.Password1.$invalid" style = "color:red">
Password must contain at least 8 characters and a special character</span>
</p>
</form>
</div>
<h1>{{myForm.myInput.$valid}}</h1>
<script>
var app = angular.module('myApp', []);
app.directive('myPassword', function() {
return {
require: 'ngModel',
link: function(scope, element, attr, myFormCtrl) {
function myValidation(value) {
if (value.indexOf("$") > -1 ||
value.indexOf("%") > -1 ||
value.indexOf("^") > -1 ||
value.indexOf("&") > -1 ||
value.indexOf("*") > -1) {
myFormCtrl.$setValidity('Charactervalidator', true);
} else {
myFormCtrl.$setValidity('Charactervalidator', false);
}
return value;
}
myFormCtrl.$parsers.push(myValidation);
}
}
});
</script>
</body>
</html>Эй, могу я спросить, что ты там делал? У меня проблемы, в чем была моя ошибка. Спасибо.
Ничего страшного, спасибо, это была глупая ошибка !!! Спасибо за помощь
Ветви if и else проверки идентичны.