angular js 表单验证

  1 <!doctype html>
  2 <html ng-app="myapp">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>Document</title>
  6     <style>
  7         body{
  8             padding: 50px;
  9             font-family: "微软雅黑";
 10         }
 11         input{
 12             margin-bottom: 20px;
 13             padding-left: 5PX;
 14             width: 300px;
 15             height: 30px;
 16             background:#fff;
 17             border: 1px solid#ccc;
 18             border-radius: 3px;
 19             webkit-transition: all .8s;
 20             -moz-transition: all .8s;
 21             -o-transition: all .8s;
 22             transition: all .8s;
 23         }
 24         input:focus {
 25             border: 1px solid #6eb932;
 26             outline: none;
 27             webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);
 28             -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);
 29             box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);
 30             webkit-transition: all .8s;
 31             -moz-transition: all .8s;
 32             -o-transition: all .8s;
 33             transition: all .8s;
 34         }
 35         button{
 36             width: 100px;
 37             height: 50px;
 38             background: #6eb932;
 39             color:#fff;
 40             font-size: 16px;
 41             outline: none;
 42             border: none;
 43             border-radius: 3px;
 44         }
 45         .txt{
 46             font-size: 16px;
 47             display: inline-block;
 48             width: 120px;
 49         }
 50         .error {
 51             color: red;
 52             font-size: 12px;
 53             padding-left: 5px;
 54         }
 55         .succese {
 56             color: #999;
 57             font-size: 12px;
 58             padding-left: 5px;
 59         }
 60     </style>
 61     <script type="text/javascript" src="jquery-1.8.2.min.js"></script>
 62     <script type="text/javascript" src="angular.min.js"></script>
 63     <script>
 64         var myapp=angular.module("myapp",[])
 65         .controller(‘myCtrl‘, [‘$scope‘, function ($scope) {
 66
 67         }])
 68     </script>
 69 </head>
 70 <body ng-controller="myCtrl">
 71     <form class="mation"  method="POST" name="myForm">
 72         <label>
 73             <span class="txt">&nbsp; &nbsp; 姓名:</span><input type="text" id="user" name="user" value="" ng-model="data.name" placeholder="请输入姓名" ng-minlength="2" ng-maxlength="8">
 74             <span class="error" ng-show="myForm.user.$error.minlength">姓名不能低于两位</span>
 75             <span class="error" ng-show="myForm.user.$error.maxlength">姓名不能多于八位</span>
 76         </label><br>
 77         <label>
 78             <span class="txt">用户名:</span><input type="text" name="username" ng-model="data.user" placeholder="不能超过10个字"  ng-minlength="2"
 79             ng-maxlength="10" required/>
 80             <span class="error" class="error" ng-show="myForm.username.$error.minlength">
 81                 用户名不能低于两个字
 82             </span>
 83             <span class="error" class="error" ng-show="myForm.username.$error.maxlength">
 84                 用户名不能超过10个字
 85             </span>
 86         </label><br>
 87         <label>
 88             <span class="txt">手机号:</span><input type="text" name="tel" placeholder="请输入手机号" ng-pattern="/^1[34578]\d{9}$/" ng-model="data.tel">
 89             <!-- /^1\d{10}$/; -->
 90             <span class="succese" ng-show="myForm.tel.$dirty && myForm.tel.$valid">手机号验证成功</span>
 91             <span class="error" ng-show="myForm.tel.$dirty && myForm.tel.$invalid">请输入正确手机号</span>
 92         </label><br>
 93         <label>
 94             <span class="txt">&nbsp; &nbsp; 邮箱:</span><input type="email" name="email" placeholder="请输入邮箱" ng-model="data.email">
 95             <span class="error" ng-show="myForm.email.$dirty && myForm.email.$invalid">邮箱格式错误</span>
 96             <span class="succese" ng-show="myForm.email.$dirty && myForm.email.$valid">邮箱验证成功</span>
 97         </label><br>
 98         <label>
 99             <span class="txt">旧密码:</span><input type="password" id="password" value="" placeholder="请输入用户原始密码">
100         </label><br>
101         <label>
102             <span class="txt">新密码:</span><input type="password" id="password1" name="password1" ng-model="password1" value="" placeholder="请输入新密码">
103         </label><br>
104         <label>
105             <span class="txt">确认密码:</span><input type="password" id="password2" name="password2" ng-model="password2" value="" placeholder="请确认新密码">
106             <span class="error" ng-show="myForm.password2.$dirty && myForm.password1.$dirty && password1!=password2">两次密码输入不一致</span>
107             <span class="succese" ng-show="myForm.password2.$dirty && password1==password2">密码校验成功</span>
108         </label><br>
109         <button type="submit" id="submit" ng-disabled="myForm.$invalid || password1!=password2">提交表格</button>
110     </form>
111 </body>
112 </html>

首先先写一下angular js表单验证中所需要的几个常用指令

下面的几个命令 formName就等同于你form表单的name名称 比如“myForm” inputFieldName就等同于你的input表单名称 比如“user” 像$pristine这种就是就是下面我们需要用的了

formName.inputFieldName.$pristine;
未修改过的表单
布尔值属性,表示用户是否修改了表单。如果为ture,表示没有修改过;false表示修改过:

formName.inputFieldName.$dirty
修改过的表单

布尔型属性,当且仅当用户实际已经修改的表单。不管表单是否通过验证:如果为ture,表示修改过;false表示没有修改过:

formName.inputFieldName.$valid
通过验证的表单

布尔型属性,它指示表单是否通过验证。如果表单当前通过验证,他将为true:


formName.inputFieldName.$invalid

和$valid相反 也是布尔型属性

用的比较频繁的就这几个 其他的下面代码中会写出来

先说一下 angular js的表单验证效果出来 必须要定义作用于 ng-app ng-controller  其次还有 input中的ng-model模版绑定...

先讲一下用户名吧 ng-minlength是字符串的最小长度 ng-maxlength 是字符串的最大长度

required是html的一个 属性 规定必需在提交之前填写输入字段。

如果使用该属性,则字段是必填(或必选)的。 有时候表单验证的时候会在form里直接去掉(现在都是动态绑定表单资料 不需要也可以)

定义好最小最大长度后 我们开始使用angular js命令

像ng-show ng-hide 和 ng-if 其实有个坑 这次就不写了  下次在专写

myForm.username.$error.minlength 中 .error.minlength是angular js的一个判断 如果字符串的长度小于minlength则返回true 此时ng-show就会生效 否则为false 此字段将display:nono掉

诺 像ng-maxlength也是一样

用户名 昵称 家庭地址什么的都可以这样写

像验证手机号的话 最简单就是 type="number" 直接限制除数字之外别的不能输入 不过总感觉有点怪异 键盘坏了?字怎么打不出来 是吧

我们可以直接用正则ng-pattern="/^1[34578]\d{9}$/"   这样有很少很少手机号匹配不成功   则可以选择ng-pattern="/^1\d{10}$/”  下面的判断条件和上面的一样 就是多了一个判断 还有时候会用到 || 这个看自己的需求

邮箱的话就更简单了 一个type="email" HTML5的新属性还是很棒的 下面加上判断条件就行了 如果自己不喜欢可以用 正则匹配一下 那个看着特别高大上 但是。。。正则是火星文   你开心就好哈哈

最重要的就是密码了 一般如果修改密码的话 旧密码修改是有接口的 还需要md5什么的加密 这个提交后后台自己会判断 成不成功就是他们的事情了 下面的新密码和确认新密码就是两个ng-model模版通过anjular指令的比较  还是那句话你要是不喜欢就jq写个判断也一样

还有最后的提交 如果表单里有一个验证不通过 自动disabled掉 你点点点点吧。。哈哈

你可以用button 可以用input type="submit" 就好

下面贴一下验证效果

这是部ok的

这是ok的

还有input 的框颜色变化 加阴影 focus时候扩大 和placeholder的样式修改这个你们都会想要美观自己做一下 等下我把源码贴上

好了 在告诉你们两个福利 如果要是写生日什么关于时间的去网上找 My97DatePicker 这个插件

好了 就这些了  希望对你们有帮助

时间: 2024-10-12 12:47:21

angular js 表单验证的相关文章

JS表单验证类HTML代码实例

以前用的比较多的一个JS表单验证类,对于个人来说已经够用了,有兴趣的可以在此基础上扩展成ajax版本.本表单验证类囊括了密码验证.英文4~10个 字符验证. 中文非空验证.大于10小于100的数字.浮点数验证.日期验证.邮件检查.网址验证.固定电话和手机号码验证.IP地址验证.邮编和QQ号码验证. MSN和身份证验证等. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.

jquery.validation.js 表单验证

jquery.validation.js 表单验证 官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation jQuery plugin: Validation 使用说明 一导入js库 <script src="../js/jquery.js" type="text/javascript"></script> <script src="../js/jq

JS表单验证-12个常用的JS表单验证

最近有个项目用到了表单验证,小编在项目完结后的这段时间把常用的JS表单验证demo整理了一下,和大家一起分享~~~ 1. 长度限制 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> 6

简单的JS表单验证效果代码

简单的JS表单验证代码:表单验证几乎是不可缺少的,有的表单验证是在后台完成的,有的则是使用JavaScript在在前端完成基本的验证,这样可以有效的减轻服务器的压力,下面就介绍一下JS实现的最简单的表单验证.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://w

jquery.validate.js表单验证

引用jquery封装好的js文件进行表单验证,提高了Web开发的效率.我写了一个验证的实例给大家展示一下. 实例中包含的验证方法还不全面,如果没有大家想要的可以通过 百度搜索关键:jquery.validate.js表单验证帮助文档来进行查阅. 引入的js文件: <script type="text/javascript" src="js/jquery-1.11.2.js"></script> <script type="te

js表单验证 插件jQuery-Validation-Engine-master

做项目基本离不开表单验证,想要美观,简洁,不占内存,用户体验效果好 所以我推荐一款js表单验证 因为我觉得这个挺好的,所以分享下 文档 下面也有下载的压缩包 https://github.com/posabsolute/jQuery-Validation-Engine 昵称做了ajax验证判断输入的用户是否存在 会提示先等待的信息...(我这里设置的时候是2秒) 如果用户名存在 会显示红色的气泡 如果用户名可以使用 会显示绿色的汽泡 还可以改变消息框的位置 如果弹出多个消息框 可以从上到下逐个提

简单的js表单验证框架

/** * 通常在我们的HTML页面表单中有大量的数据验证工作, * 免不了要写很多验证表单的js代码,这是一项非常繁琐 * 枯燥的工作.很多程序员也会经常遗漏这项工作.当然 * 一些JavaEE框架中有一些比较好的验证框架提供给我们 * 使用,但是也是需要很多繁琐的配置,页面查看起来也 * 不是很方便.一般程序员使用的也不多.所以写了这一 * 段JavaScript代码提供给大家使用.算是一个简单的 * JavaScript验证框架吧.使用起来很简单,配合下面几 * 种标签使用,能实现大多数表

JS表单验证示例

1 </<!DOCTYPE html> 2 <html> 3 <head> 4 <title>JS表单验证</title> 5 <meta http-equiv = "content-type" content="text/html; charset = utf-8 "> 6 <link rel="stylesheet" href="JSlogin.cs

js表单验证工具包

常用的js表单验证方法大全 1 /* 2 非空校验 : isNull() 3 是否是数字: isNumber(field) 4 trim函数: trim() lTrim() rTrim() 5 校验字符串是否为空: checkIsNotEmpty(str) 6 校验字符串是否为整型: checkIsInteger(str) 7 校验整型最小值: checkIntegerMinValue(str,val) 8 校验整型最大值: checkIntegerMaxValue(str,val) 9 校验整