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. [Algorithm] 群体智能优化算法之粒子群优化算法

    同进化算法(见博客<[Evolutionary Algorithm] 进化算法简介>,进化算法是受生物进化机制启发而产生的一系列算法)和人工神经网络算法(Neural Networks,简 ...

  2. JavaScript面向对象和原型函数

    对象,是javascript中非常重要的一个梗,是否能透彻的理解它直接关系到你对整个javascript体系的基础理解,说白了,javascript就是一群对象在搅..(哔!). 常用的几种对象创建模 ...

  3. Jquery attr("checked") 返回checked或undefined 获取选中失效解决方案

    jq1.6之前版本获取方式<input type='checkbox' id='cb'/> <script> //获取是否选中 var isChecked = $('#cb') ...

  4. CentOS 6.5 编译 PHP-7 报错:undefined reference to `libiconv_open 无法编译 PHP libiconv

    ./configure --with-mysql=/backup/mysql --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zli ...

  5. SwipeMenuListView在ScrollView里上下滑动导致菜单不能显示完全的bug解决方法

    这是因为上下滑动的时候,事件被ScrollView截获了,这时候应该禁止ScrollView截获上下滑动事件,解决方法如下 public class NoRollSwipeMenuListView e ...

  6. sss

    function handleTouchEvent(event) {    if (event.touches.length == 1) {        var output = document. ...

  7. wget 断点续传 & nginx文件服务器

    nginx默认支持断点续传: 测试方法: wget -S http://httpd.apache.org/images/httpd_logo_wide_new.png 2>&1 | gr ...

  8. eclipse逐步调试

    Eclipse 的单步调试 1.设置断点在程序里面放置一个断点,也就是双击需要放置断点的程序左边的栏目上.2.调试(1)点击"打开透视图"按钮,选择调试透视图,则打开调试透视图界面 ...

  9. bootstrap - 响应式标题栏

    先要拆分: .navbar  先变成相对定位 设置最小高度为50px: 设置底部边距为20px 然后设置一个 透明边框! 边框倒角 4px   //@media (min-width:768px) - ...

  10. web前端页面性能优化

    影响用户访问的最大部分是前端的页面.网站的划分一般为二:前端和后台.我们可以理解成后台是用来实现网站的功能的,比如:实现用户注册,用户能够为文章发表评论等等.而前端呢?其实应该是属于功能的表现. 而我 ...