angular验证

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">


<title>My JSP 'angular1.jsp' starting page</title>
<!-- 引入bootstrap的css样式 -->
<link rel="stylesheet" type="text/css"
href="static/bootstrap-3.3.7-dist/css/bootstrap.min.css">


<!-- 引入jquery -->
<script type="text/javascript" src="static/js/jquery-3.2.1.js"></script>


<!-- 引入bootstrap的js-->
<script type="text/javascript"
src="static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
<script type="text/javascript" src="static/angular.min.js"></script>
<script type="text/javascript">
//步骤二:创建和部署controller   步骤三:传入用户数据和创建验证规则
//$touch:表示用户已经碰过这个表单
var test = angular.module("myApp", []);
//创建一个controller ,"controller名称" ,然后是一个回调函数  function{在回调函数里传一个$scope进去 作为dom里头一个域 ,域里有一个  userdata,
//最后把表单数据都存在这个userdata里   }
//“MainController”写在<body>标签里 表示:此标签下所有的东西在这个ng-controlller的域里
test.controller("MainController", function($scope) {
$scope.userdata = {};
//域里还有一个submitForm,表单一旦提交后怎么办 执行这个回调函数
$scope.submitForm = function() {


console.log($scope.userdata);
if ($scope.signUpForm.$invalid) {
alert("请检查你的信息!");
} else
alert("提交成功!");
};
});
//创建自定义指令
test.directive("compare", function() {
if(userdata.password==userdata.password2){
alert("密码校验成功!");
}else
alert("密码校验失败!");
//命名函数体  
var o = {};
//命令作用在命令和属性上
o.strict = 'AE';
//o.scope等于一个对象


o.scope = {
//orgText等于之前的字符
orgText : '=compare'

};

o.require = 'ngModel';


//主函数  传参 一次是:域,当前元素,属性,ng-model
o.link = function(sco, ele, att, con) {
//最后传参给compare=回调函数 传回一个值,这个值用户输入的值
con.$validators.compare = function(v) {
//之前输过的和新输入的是否一样
alert("v:"+v);
return v == sco.orgText;
};


//一旦有变化就执行function函数
sco.$watch('orgText', function() {
con.$validate();
});
};
});
</script>
<style type="text/css">
.error {
color: #a10;
}
/* p.error{
display:none;
} */
input.error {
border: 1px solid #a10;
}


.wrapper {
width: 200px;
margin: 30px auto;
}
</style>
</head>
<!-- ng-model指令:数据绑定     ng-class:用在一些需要动态类名的一些标签上         显示一下CSS样式 error:singnUpForm.username.$invalid(不合法)就使用这个error类名  ,会自动添加到 class="form-control后面"    
  2. 给一些条件,来判断合法不合法  4.ruquired 必填的   5.ng-model 用户输入的容器   把error添加到class里
  6.signUpForm.username.touched 曾经用过的,不是一开始就验证
  7.ng-if指令,判断
  8.disabled:username必须合法时 username2才能填写
      class:       -->
<body ng-app="myApp" ng-controller="MainController">


<div class="wrapper">
<h2>注册</h2>
<form name="signUpForm" ng-submit="submitForm()">
<div class="form-group">
<label>用户名:</label>
<pre>{{signUpForm.username.$valid}}</pre>
<pre>{{userdata.username}}</pre>
<input name="username" type="text" class="form-control"
ng-model="userdata.username" ng-minlength="4" ng-maxlength="32"
required />
<p class="error"
ng-if="(signUpForm.username.$error.minlength || signUpForm.username.$error.maxlength)
    && signUpForm.username.$touched">用户名长度在4之32位之间</p>
<p class="error"
ng-if="signUpForm.username.$error.required&&
   signUpForm.username.$touched">用户名名不能为空!</p>
</div>


<div class="form-group" ng-class="{'has-success': signUpForm.password.$valid}">
<label>密码:</label>
<pre>{{signUpForm.password.$valid}}</pre>
<pre>{{userdata.password}}</pre>
<input name="password" type="password" class="form-control"
ng-model="userdata.password" ng-minlength="4" ng-maxlength="122"
required />
<p class="error"
ng-if="signUpForm.password.$error.required&&
   signUpForm.password.$touched">密码不能为空!</p>
<p class="error"
ng-if="(signUpForm.password.$error.minlength||signUpForm.password.$error.maxlength)
   &&signUpForm.password.$touched">用户名长度在4之122位之间</p>


</div>


<div class="form-group">
<label>确认密码:</label>
<pre>{{signUpForm.password2.$valid}}</pre>
<pre>{{userdata.password2}}</pre>
<input name="password2" type="password" class="form-control"
ng-model="userdata.password2" compare="userdata.password" required/>
<p class="error"
ng-if="signUpForm.password2.$error.compare &&
   signUpForm.password2.$touched">两次输入不一致!</p>
</div>


<div class="form-group">
<button class="btn btn-primary">注册</button>
</div>
</div>
</form>
</body>
</html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值