novalidate   去掉html5自带的验证

ng-minlength    规定输入文本的最小长度

ng-maxlength    规定输入文本的最大长度

ng-submit  接收一个方法名,提交表单时触发这个方法

ng-class 规定一个条件,满足条件后添加指定的类名。语法如下:(error是类名,冒号后面的是条件)

ng-class="{'error':form.username.$error.required}"

$pristine  没有被改过的表单

$dirty  被改过的表单

$valid  通过验证

$invalid 没有通过验证

$error  错误

语法:

<!--
这是一个条件,表示检查所有规则
-->
form.username.$invalid <!--
表示只检查minlength规定的规则
-->
form.username.$error.minlength
<!--
form表示 form表单的form的name名字,
username 表示form下某个表单
-->

当input上规定的验证规则通过后,在input 上写的 ng-model 才会生效。

ng-if  语句的条件满足显示元素,不满足移除元素

ng-disabled 同ng-if的用法一样,这个是表示元素可不可用的

根据以上知识点就可以写一个简单的表单验证了:

<!DOCTYPE html>
<html ng-app="myApp">
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="../../Angular/angular.min.js"></script>
<link rel="stylesheet" href="../../Angular/bootstrap.css"/>
<style>
.box
{
width:200px;
margin:50px auto;
} p.error
{
color:red;
} input.error
{
border:1px solid red;
}
</style>
</head>
<body> <div class="box" ng-controller="myController1">
<form name="form" ng-submit="formSubmit()" novalidate>
<h2>注册</h2>
<div>
<label>用户名:</label>
<input type="text"
class="form-control"
ng-model="userdata.username"
name="username"
ng-minlength="3"
ng-maxlength="5"
required
/>
<div class="error" ng-show="form.username.$invalid && form.username.$dirty && form.submitted">
<p class="error" ng-if="form.username.$error.minlength">最少输入3位</p>
<p class="error" ng-if="form.username.$error.maxlength">最多输入5位</p>
<p ng-if="form.username.$error.required" ng-class="{'error':form.username.$error.required}">不能为空</p>
</div> </div>
<div>
<label>密码:</label>
<input type="password"
name="password"
ng-model="userdata.password"
class="form-control"
ng-minlength="6"
required
ng-class="{'error':form.password.$invalid && form.password.$dirty}"
/>
<p class="error" ng-if="form.password.$invalid && form.password.$dirty">密码格式不正确</p>
</div>
<div class="text-center">
<input type="submit" class="btn btn-danger"/>
</div> </form>
</div> <script>
angular.module("myApp",[])
.controller("myController1",function($scope)
{
$scope.userdata = {};
$scope.submitted = false;
$scope.formSubmit = function()
{
if($scope.form.$valid)
{
console.log($scope.userdata); //scope可以直接点出from的name属性
console.log($scope.form)
}
else
{
$scope.form.submitted = true;
} }
})
</script>
</body>
</html>

Angular表单验证的更多相关文章

  1. Angular 表单验证类库 ngx-validator 1.0 正式发布

    背景介绍 之前写了一篇 <如何优雅的使用 Angular 表单验证>,结尾处介绍了统一验证反馈的类库  ngx-validator  ,由于这段时间一直在新模块做微前端以及相关业务组件库, ...

  2. 简单的angular表单验证指令

    <html ng-app="myApp"> <head> <meta charset="UTF-8"> <title& ...

  3. angular表单验证实例----可用的代码

    前段时间,公司做一个单页面,就是一个表单验证,早开始在菜鸟教程上关注了angular,所以下派上用场了 angular里面对于表单验证,设置了很多指令. 也就是说不用自己写一些逻辑,直接绑定指令就行. ...

  4. 从浅入深剖析angular表单验证

    最近手上维护的组件剩下的BUG都是表单验证,而且公司的表单验证那块代码经历的几代人,里面的逻辑开始变得不清晰,而且代码结构不是很angular. 是很有必要深入了解表单验证. 入门之前,我觉得应该先了 ...

  5. angular 表单验证

    最近在用angular写表单验证时 , 不小心把ng-model全替换删掉了, 然后发现之前写的验证都失效, 在查阅资料和反复修改摸索后, 发现angular中的表单验证, 都是基于ng-model的 ...

  6. 如何优雅的使用 Angular 表单验证

    随便说说,这一节可以跳过 去年参加 ngChine 2018 杭州开发者大会的时候记得有人问我: Worktile 是什么时候开始使用 Angular 的,我说是今年(2018年) 3 月份开始在新模 ...

  7. 简话Angular 05 Angular表单验证

    一句话: 可以使用所有html5表单验证功能,同时Angular还增强了部分验证,支持动态验证 1. 上源码 <div ng-controller="ExampleController ...

  8. Angular 表单验证 基础篇

    <div class="nav"> <h4>表单验证</h4> <form ng-app="myApp" name=& ...

  9. ngVerify - 更高效的 angular 表单验证

    ngVerify v1.5.0 a easy Angular Form Validation plugin.简洁高效的__angular表单验证插件__ See how powerful it.看看它 ...

随机推荐

  1. jcFeather Maya 羽毛插件

    jcFeather 2.8.6 插件持续更新地址为:http://www.jerrykon.com/jcFeather.html 和 http://www.creativecrash.com/maya ...

  2. HDOJ 1358

    Period Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  3. C和指针 第十六章 标准函数库 本地跳转setjmp.h

    setjmp和longjmp提供一种类似goto语句的机制,但它的作用域不局限于同一个函数的作用域之内.这些函数可以用于深层次的嵌套函数调用链. int setjmp(jmp_buf state); ...

  4. Linux安装ftp组件过程

    1   安装vsftpd组件 安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件. [root@bogon ~]# yum -y install vsftpd 2 ...

  5. 天河微信小程序入门:阿里云tomcat免费配置https

    天河君在第一时间通过了微信小程序验证,开启了我的微信小程序之旅.因为天河君之前是一名后端狗,对前端不是很了解,所以几乎可以认为是从零开始学做微信小程序.也希望有志在微信小程序方向做点事情的朋友能够和我 ...

  6. (转)实现DataList的分页 新增列

    前几天在做网上商城,要展示商品信息(有图片,有文字),DataView虽然可以分页,但它的缺点是不能自定义显示格式.而DataList解决了它的缺点,但DataList本身却不能分页.很是头痛,于是在 ...

  7. 6 VC维

    1 VC维的定义 VC维其实就是第一个break point的之前的样本容量.标准定义是:对一个假设空间,如果存在N个样本能够被假设空间中的h按所有可能的2的N次方种形式分开,则称该假设空间能够把N个 ...

  8. ubuntu 配置VPN

    1.  sudo apt-get install pptpd 2.  修改/etc/pptpd.conf , vi /etc/pptpd.conf 找到#localip 192.168.0.1和#re ...

  9. 自动加载dll,加载dll中程序集的信息。

    自动加载程序集,解析程序集中的方法. private static object Invoke(string lpFileName, string Namespace, string ClassNam ...

  10. sh 测试网段在线主机

    yum install nmap nmap -sP  192.168.21.1/24 查看网段在线主机 grep -vwf file1 file2 文件内容比较 #!/bin/bash # day=` ...