Angular Js 表单验证

Anjular Js的验证必须在form表中才能生效,不在form中不生效。

1. from表中进行设置<form name="actForm" novalidate>novalidate属性是禁止form表单原生态的校验,避免自定义校验产生冲突。

2.requied 标识这是一个必填的选项,不能为空

3.ng-pattern="/^([1-9]\d*|[0]{1,1})$/" 是一个正则表达式输入第一位不为0的正整数,判定是否符合规则

4.ng-show=" actForm.number.$dirty && actForm.number.$invalid" 当结果为true是展现,否则隐藏

5.表单属性 

$dirty 表单有填写记录
$valid 字段内容合法的
$invalid 字段内容是非法的
$pristine 表单没有填写记录

利用这些表单属性,可以在表单提交时进行数据的检测。比如,所有的输入input是否符合要求

	$scope.save = function(){
//$scope.actForm.$pristine actForm中没有输入内容,没有为true,
//注意页面加载时赋予input值,只要没有改变就是true,重点是输入
		if($scope.actForm.$pristine){
			alert("表单信息没有填写或没有改变");
			return;
		}
//$scope.actForm.$invalid 判定所有的输入是否合法,即是否符合你设置的规则,一个不符合就是false
		if( $scope.actForm.$invalid){
			alert("表单信息格式填写不正确");
			return;
		}
}
<body ng-controller="xheducationactController" >
		<div class="loading">
			<div class="loadingimg">
			</div>
		</div>
	<form name="actForm" novalidate>
		<div class="content">
			<br>
			<br>
			<div class="edit">
				<table width="100%">
					<tr>
						<td width="15%">{{'number' | translate }}</td>
						<td width="35%">
							<input  type="text" class="text_area" 
								name="number" ng-model="data.number"  required 
								ng-pattern="/^([1-9]\d*|[0]{1,1})$/" />
						</td>
						<td width="60%">
							  <span style="color:red" ng-show=" actForm.number.$dirty && actForm.number.$invalid">
								  <span ng-show="actForm.number.$error.required">数字是必须的</span>
								  <span ng-show="actForm.number.$error.pattern">必须是数字</span>
							  </span>
   						</td>
					</tr>
					<tr>
						<td width="15%">{{'chineseName' | translate }}</td>
						<td width="35%">
							<input type="text" class="text_area" 
								name="chineseName" ng-model="data.chineseName" 
								required ng-pattern="/^[\u4E00-\u9FA5]{0,}$/" />
						</td> 
						<td width="60%">
							  <span style="color:red" ng-show=" actForm.chineseName.$dirty && actForm.chineseName.$invalid" >
								  <span ng-show="actForm.chineseName.$error.required">中文名是必须的</span>
								  <span ng-show="actForm.chineseName.$error.pattern">必须是中文</span>
							  </span>
   						</td>
					</tr>
				</table>
			</div>
			<br>
		</div>
		<div class="operation">
			<input type="button" 
			class="cbtn" value="{{'baocun' | translate }}" title="{{'baocun' | translate }}" 
				ng-if="!detail" ng-click="save();">
			<input type="button" class="cbtn" value="{{'guanbi' | translate }}" title="{{'guanbi' | translate }}" 
				ng-click="close();">
			
		</div>
	</form>
	</body>

猜你喜欢

转载自blog.csdn.net/guo131003430325/article/details/81480499