参考 http://blog.xebia.com/2013/10/15/angularjs-validating-radio-buttons/

http://stackoverflow.com/questions/19632933/angularjs-group-check-box-validation

html

验证的require maxlength 等是根据 表单名.元素名
controller获取数据是根据ng-model
<form name="form1" class="form-group"
ng-class="{ 'has-error' : form1.username.$invalid && !form1.username.$pristine }">
<label>Username</label>
<input type="text" name="username" class="form-control" ng-model="user.username" ng-minlength="3" ng-maxlength="8" required/>
<p ng-show="form1.username.$error.required" class="help-block">Tell us your Username</p>
<p ng-show="form1.username.$error.minlength" class="help-block">Username is too short.</p>
<p ng-show="form1.username.$error.maxlength" class="help-block">Username is too long.</p>
<br>
<label>Email</label>
<input class="form-control" type="email" ng-model="user.email" name="email" required/><br />
<p ng-show="form1.email.$error.required" class="help-block">Tell us your email.</p>
<p ng-show="form1.email.$error.email" class="help-block">email wrong.</p>
<label>Gender:</label>
<label class="radio" ng-repeat="gen in genders">
<input type="radio" ng-model="user.gender" name="gender" value="{{gen.id}}" required/><span>{{gen.text}}</span>
</label>
<label>Hobby:</label>
<label class="checkbox" ng-repeat="hobby in hobbies">
<input type="checkbox" ng-model="user.hobbies[hobby.id]" name="hobby" value="{{hobby.id}}" required/><span>{{hobby.text}}</span>
</label>
<p>自定义验证</p> <button ng-click="save(user)" class="btn btn-default">Submit</button>
<button ng-click="reset()" class="btn btn-default">reset</button>
</form>
<pre>form = {{user | json}}</pre>
<pre>saved = {{saved | json}}</pre>

controller

    //测试form1
$scope.saved = {};
$scope.genders = [{id:'1',text:'male'},{id:'2',text:'female'}];
$scope.hobbies = [{id:'1',text:'haha'},{id:'2',text:'hehe'}];
$scope.save = function(user){
$scope.saved = angular.copy(user);
}
$scope.reset = function() {
console.log($scope.user);
$scope.user = angular.copy($scope.saved);
};

Angular form的更多相关文章

  1. 细说angular Form addControl方法

    在本篇博文中,我们将接触angular的验证.angular的验证是由form 指令和ngModel协调完成的.今天博主在这里想要说的是在验证在的一种特殊情况,当验证控件没有没有name属性这是不会被 ...

  2. angular form 验证

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. angular form 验证 ngMessage

    <!DOCTYPE HTML> <html ng-app="deliciousApp"> <head> <meta charset=&qu ...

  4. Angular - - form.FormController、ngModel.NgModelController

    form.FormController FormController跟踪所有他所控制的和嵌套表单以及他们的状态,就像有效/无效或者脏值/原始. 每个表单指令创建一个FormController实例. ...

  5. [Angular Form] ngModel and ngModelChange

    When using Radio button for Tamplate driven form, we want to change to the value change and preform ...

  6. angular form set dynamic control(form动态设置control)

    实现效果 form表单控件的实时更新 效果如图 关键代码 validateForm: FormGroup; // 表单校验 constructor( private fb: FormBuilder ) ...

  7. angular(常识)

    我觉得angularjs是前端框架,而jquery只是前端工具,这两个还是没有可比性的. 看知乎上关于jquery和angular的对比http://www.zhihu.com/question/27 ...

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

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

  9. [转]Angular: Hide Navbar Menu from Login page

    本文转自:https://loiane.com/2017/08/angular-hide-navbar-login-page/ In this article we will learn two ap ...

随机推荐

  1. OCP-1Z0-053-V12.02-512题 【转】

    http://blog.csdn.net/gisinfo/article/details/8159875 1.Which two statements correctly describe the r ...

  2. hdu4745

    区间DP,这类题目还是非常常见的,可惜平时都不怎么在意.一到比赛就弱得像鸟一样,真心囧. 题目要求很简单,就是一个最长的回文子序列,输出该子序列的长度. 区间DP,最常用的一种策略(类似于数学归纳法) ...

  3. jquery ajax返回json数据进行前后台交互实例

    jquery ajax返回json数据进行前后台交互实例 利用jquery中的ajax提交数据然后由网站后台来根据我们提交的数据返回json格式的数据,下面我来演示一个实例. 先我们看演示代码 代码如 ...

  4. 0x800a138f - JavaScript runtime error: Unable to get property 'asSorting' of undefined or null reference 错误原因以及解决办法

    使用Jquery Datatables的时候也许会碰到这样的错误提示,当我们仔细的查找代码,发现引用的js文件,css文件均引用了,就是找不到他的问题所在. 这是从我们引用的js文件内部报的错. 这个 ...

  5. Javascript面向对象之创建对象

    面向对象的语言具有一个共同的标志,那就是具有“类”的概念,但是在javascript中没有类的概念,在js中将对象定义为“无序属性的集合,其属性可以包含基本值,对象或者函数”,即其将对象看作是一组名值 ...

  6. 1.9 需求订单导入MDS

    1.9          需求订单导入MDS 1.9.1   业务方案描述 将”需求订单维护表”中完成调整维护的需求订单导入系统标准MDS中,使之驱动对应的物料需求计划(MRP)的运行. 1.9.2  ...

  7. 在cad中画一条长500mm,垂直90度的线段

    视频教程奉上 方法1.点击线段按钮,鼠标指定一点,输入500,再输入<90. 方法2,点击线段按钮,鼠标指定一点,输入500,按tab,再输入90.

  8. 深入分析MFC文档视图结构(项目实践)

    k_eckel:http://www.mscenter.edu.cn/blog/k_eckel 文档视图结构(Document/View Architecture)是MFC的精髓,也是Observer ...

  9. [LeetCode][Python]Integer to Roman

    # -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com'https://oj.leetcode.com/problems/integer ...

  10. [置顶] Oracle GoldenGate 常见问题:长事务处理

    长事务的影响 OGG是基于事务级的实时复制工具,也就是说OGG只复制已提交的事务,在遇到事务的commit或rollback之前,它会将每个事务的操作存储在称为cache的托管虚拟内存池中.内存再大也 ...