i want to validate my form with having errors for submitting empty fields what should i do in my controller?
<form id="login-form" name="LoginForm" action="/home" method="get" class="loginform" role="form" novalidate ng-submit="LoginValidator()">
<input type="email" name="Email" id="email" tabindex="1"
ng-model="login.email"
ng-pattern="/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/"
placeholder="Email" ng-required="true">
<span style="color:red; display:block; text-align:center;"
ng-show="LoginForm.Email.$dirty && LoginForm.Email.$error.pattern">
* Please Enter Valid Email</span>
<span style="color:red; display:block; text-align:center;"
ng-show="LoginForm.Email.$submitted && LoginForm.Email.$error.required">
* Email required</span>
<input type="password" name="password" ng-minlength="8" id="password"
tabindex="2" ng-model="login.password"
placeholder="Password" ng-required="true">
<div ng-show="LoginForm.password.$dirty && LoginForm.password.$invalid">
<small style="color:red; display:block; text-align:center;">
* Invalid Password</small>
</div>
<input type="submit" value="LOG IN" />
</form>
it shows the first error but not showing error of $submitted
why should i do here?
var app = angular.module('qec', []);
app.controller('login' ,['$scope' , function ($scope) {
$scope.LoginValidator = function (isValid) {
};
}]);
Validate the $valid attribute of the form in the controller inside the function of the submit.
UPDATE
$scope.LoginValidator = function ($event) {
$event.preventDefault();
if($scope.LoginForm.$valid){
console.log("valid");
}else{
console.log("invalid");
console.log($scope.LoginForm.$error.require);
if($scope.LoginForm.Email.$invalid){
$scope.mailRequire = true;
}
if($scope.LoginForm.password.$invalid){
$scope.passRequire = true;
}
}
};
also for show the email required error. change html like this
<span style="color:red; display:block; text-align:center;"
ng-show="mailRequire">* Email required</span>
here is the plnkr