AngularJS 表单验证

作者 : 慕源网 本文共1773个字,预计阅读时间需要5分钟 发布时间: 2022-05-1 共409人阅读

AngularJS 表单验证,AngularJS 在客户端执行表单验证。AngularJS 监听表单和输入字段(输入、文本区域、选择)的状态,并通知用户当前状态。AngularJS 还保存有关输入字段是否已被触摸、修改或未修改的信息。

表单输入具有以下状态:

  • $untouched:表示该字段还没有被触及。
  • $touched:表示该字段已被触摸。
  • $pristine:表示该字段还没有被修改。
  • $dirty:说明该字段已被修改。
  • $invalid:表示字段内容无效。
  • $valid:指定字段内容有效。
这些都是输入字段的属性,可以是true或false。

表单具有以下状态:

  • $pristine:表示字段还没有被修改。
  • $dirty:说明一个或多个字段被修改。
  • $invalid:表示表单内容无效。
  • $valid:表示表单内容有效。
  • $submitted:它指定表单已提交。这些都是表单的属性,可以为true或false。
    此状态可用于向用户输入的非法数据进行警告。

    示例 1:

<!DOCTYPE html>
<html>
<script src=
"https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js">
</script>
<body ng-app="">
<form name="form1">
<p>Name:
<input name="username" ng-model="username" required>
<span ng-show="form1.username.$pristine && form1.username.$invalid">
The name is required.</span>
</p>
<p>Address:
<input name="useraddress" ng-model="useraddress" required>
</p>
</form>
<p>We use the ng-show directive to only
show the error message if the field has
not modified yet AND content present in
the field is invalid.</p>
</body>
</html>

输出:

自定义表单验证:要创建您自己的验证函数,请向您的应用程序添加一个新指令,并使用某些指定参数处理函数内部的验证。

示例 2:创建自定义验证函数,该字段仅在值大于或等于 18 时才有效。

<!DOCTYPE html>
<html>
<script src=
"https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js">
</script>
<body ng-app="developapp">
<form name="form1">
Username:
<input name="username" required><br><br>
Age:
<input name="userage" ng-model="userage" required app-directive>
</form>

<p>The input's valid state is:</p>
<h1>{{form1.userage.$valid}}</h1>
<script>
var app = angular.module('developapp', []);
app.directive('appDirective', function() {
	return {
		require: 'ngModel',
		link: function(scope, element, attr, mCtrl) {
			function myValidation(value) {
				if (value >=18) {
					mCtrl.$setValidity('charE', true);
				} else {
					mCtrl.$setValidity('charE', false);
				}
				return value;
			}
			mCtrl.$parsers.push(myValidation);
		}
	};
});
</script>

<p>The input field must have
user age greater than 18 to be
considered valid for voting.</p>

</body>
</html>

输出:


慕源网 » AngularJS 表单验证

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录