Angular表单验证
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表单验证的更多相关文章
- Angular 表单验证类库 ngx-validator 1.0 正式发布
背景介绍 之前写了一篇 <如何优雅的使用 Angular 表单验证>,结尾处介绍了统一验证反馈的类库 ngx-validator ,由于这段时间一直在新模块做微前端以及相关业务组件库, ...
- 简单的angular表单验证指令
<html ng-app="myApp"> <head> <meta charset="UTF-8"> <title& ...
- angular表单验证实例----可用的代码
前段时间,公司做一个单页面,就是一个表单验证,早开始在菜鸟教程上关注了angular,所以下派上用场了 angular里面对于表单验证,设置了很多指令. 也就是说不用自己写一些逻辑,直接绑定指令就行. ...
- 从浅入深剖析angular表单验证
最近手上维护的组件剩下的BUG都是表单验证,而且公司的表单验证那块代码经历的几代人,里面的逻辑开始变得不清晰,而且代码结构不是很angular. 是很有必要深入了解表单验证. 入门之前,我觉得应该先了 ...
- angular 表单验证
最近在用angular写表单验证时 , 不小心把ng-model全替换删掉了, 然后发现之前写的验证都失效, 在查阅资料和反复修改摸索后, 发现angular中的表单验证, 都是基于ng-model的 ...
- 如何优雅的使用 Angular 表单验证
随便说说,这一节可以跳过 去年参加 ngChine 2018 杭州开发者大会的时候记得有人问我: Worktile 是什么时候开始使用 Angular 的,我说是今年(2018年) 3 月份开始在新模 ...
- 简话Angular 05 Angular表单验证
一句话: 可以使用所有html5表单验证功能,同时Angular还增强了部分验证,支持动态验证 1. 上源码 <div ng-controller="ExampleController ...
- Angular 表单验证 基础篇
<div class="nav"> <h4>表单验证</h4> <form ng-app="myApp" name=& ...
- ngVerify - 更高效的 angular 表单验证
ngVerify v1.5.0 a easy Angular Form Validation plugin.简洁高效的__angular表单验证插件__ See how powerful it.看看它 ...
随机推荐
- [Algorithm] 群体智能优化算法之粒子群优化算法
同进化算法(见博客<[Evolutionary Algorithm] 进化算法简介>,进化算法是受生物进化机制启发而产生的一系列算法)和人工神经网络算法(Neural Networks,简 ...
- JavaScript面向对象和原型函数
对象,是javascript中非常重要的一个梗,是否能透彻的理解它直接关系到你对整个javascript体系的基础理解,说白了,javascript就是一群对象在搅..(哔!). 常用的几种对象创建模 ...
- Jquery attr("checked") 返回checked或undefined 获取选中失效解决方案
jq1.6之前版本获取方式<input type='checkbox' id='cb'/> <script> //获取是否选中 var isChecked = $('#cb') ...
- 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 ...
- SwipeMenuListView在ScrollView里上下滑动导致菜单不能显示完全的bug解决方法
这是因为上下滑动的时候,事件被ScrollView截获了,这时候应该禁止ScrollView截获上下滑动事件,解决方法如下 public class NoRollSwipeMenuListView e ...
- sss
function handleTouchEvent(event) { if (event.touches.length == 1) { var output = document. ...
- wget 断点续传 & nginx文件服务器
nginx默认支持断点续传: 测试方法: wget -S http://httpd.apache.org/images/httpd_logo_wide_new.png 2>&1 | gr ...
- eclipse逐步调试
Eclipse 的单步调试 1.设置断点在程序里面放置一个断点,也就是双击需要放置断点的程序左边的栏目上.2.调试(1)点击"打开透视图"按钮,选择调试透视图,则打开调试透视图界面 ...
- bootstrap - 响应式标题栏
先要拆分: .navbar 先变成相对定位 设置最小高度为50px: 设置底部边距为20px 然后设置一个 透明边框! 边框倒角 4px //@media (min-width:768px) - ...
- web前端页面性能优化
影响用户访问的最大部分是前端的页面.网站的划分一般为二:前端和后台.我们可以理解成后台是用来实现网站的功能的,比如:实现用户注册,用户能够为文章发表评论等等.而前端呢?其实应该是属于功能的表现. 而我 ...