如何在 AngularJS 中显示提交错误并在不禁用提交按钮的情况下停止提交表单?
How to show errors on submit in AngularJS and stop form from submitting without disabling the submit button?
我想验证我的表单,在提交空字段时出现错误我应该在我的控制器中做什么?
<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>
它显示了第一个错误,但没有显示 $submitted
的错误
我为什么要在这里做?
var app = angular.module('qec', []);
app.controller('login' ,['$scope' , function ($scope) {
$scope.LoginValidator = function (isValid) {
};
}]);
在提交函数内的控制器中验证表单的 $valid 属性。
更新
$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;
}
}
};
也用于显示需要电子邮件的错误。像这样改变 html
<span style="color:red; display:block; text-align:center;"
ng-show="mailRequire">* Email required</span>
这里是 plnkr
我想验证我的表单,在提交空字段时出现错误我应该在我的控制器中做什么?
<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>
它显示了第一个错误,但没有显示 $submitted
的错误我为什么要在这里做?
var app = angular.module('qec', []);
app.controller('login' ,['$scope' , function ($scope) {
$scope.LoginValidator = function (isValid) {
};
}]);
在提交函数内的控制器中验证表单的 $valid 属性。
更新
$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;
}
}
};
也用于显示需要电子邮件的错误。像这样改变 html
<span style="color:red; display:block; text-align:center;"
ng-show="mailRequire">* Email required</span>
这里是 plnkr