参考 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. 第9课_1_cluster安装

    1. 配置网络 vi ifcfg-eth0 ifup ifcfg-eth0 [root@localhost init.d]# ./network restart Shutting down inter ...

  2. Highcharts使用手册

    chart: { type: 'area', ignoreHiddenSeries: false, //如果true,一旦一个系列被隐藏,轴将会扩展剩余的可见系列 }, 这是设置的两个纵坐标轴: yA ...

  3. Swift 控制流

    Swift 1,顺序结构 2,分支结构 switch 中每一个case块完成后会自动终止switch语句, 不用手动终止 case 可有多值,如 case "A","a& ...

  4. 判断浏览器及设备的打开方式,自动跳转app中

    如果安装了APP则自动条状app,如果没安装则自动跳转下载页面 <head> 放在head中加载 <script> function redirect() { var appU ...

  5. Android 数据库ORM框架GreenDao学习心得及使用总结<二>

    转:http://blog.csdn.net/xushuaic/article/details/24496191 第五篇 查询 查询会返回符合某些特定标准的实体.你可以使用原始的SQL定制查询语句,或 ...

  6. weather compare

  7. Dnsmasq(局域网DNS,DHCP)

    安装:yum -y install dnsmasq   dnsmasq配置文件: /etc/dnsmasq.conf 默认指定DNS服务器(优先级)文件:/etc/resolv.conf 默认host ...

  8. java反射机制(笔记)

    java反射机制就是获取出class的相应方法 例如 获取构造函数: 模版: Class test = Class.forName("cn.test.Person");//得到相应 ...

  9. eclipse快捷键说明

    Ctrl+1 快速修复(最经典的快捷键,就不用多说了) Ctrl+D: 删除当前行  Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Alt+↑ 复制当前行到上一行(复制增加) Alt ...

  10. python entry points 例子

    pbr的介绍不多,http://ju.outofmemory.cn/entry/156745 $ mkdir entry_test; cd entry_test; git init $ mkdir  ...