`

AngularJs 表单

 
阅读更多

简单的表单

 ngModel指令实现了双向的数据绑定,即模型和视图双向同步,同时它也为其他指令提供了API来扩展ngModel的行为。

 

<div ng-controller="ExampleController">  
  <form novalidate class="simple-form">  
    Name: <input type="text" ng-model="user.name" /><br />  
    E-mail: <input type="email" ng-model="user.email" /><br />  
    Gender: <input type="radio" ng-model="user.gender" value="male" />male  
    <input type="radio" ng-model="user.gender" value="female" />female<br />  
    <input type="button" ng-click="reset()" value="Reset" />  
    <input type="submit" ng-click="update(user)" value="Save" />  
  </form>  
  <pre>form = {{user | json}}</pre>  
  <pre>master = {{master | json}}</pre>  
</div>  
  
<script>  
  angular.module('formExample', [])  
    .controller('ExampleController', ['$scope', function($scope) {  
      $scope.master = {};  
  
      $scope.update = function(user) {  
        $scope.master = angular.copy(user);  
      };  
  
      $scope.reset = function() {  
        $scope.user = angular.copy($scope.master);  
      };  
  
      $scope.reset();  
    }]);  
</script>   

novalidate表明没有添加任何校验逻辑,在表单组定义了各种输入控件绑定到模型user的不同属性,当用户输入是会看到form信息不停的更新,点击“Save”按钮会把当前表单的值保存到master变量中,master信息会相应的更新, 点击"Reset"信息会重置表单的信息,即把之前保存的快照master赋值给user. 这里通过angular.copy函数做了深拷贝。

 

表单css样式

- ng-valid: 数据合法时的CSS样式

    - ng-invalid: 数据不合法时的CSS样式

    - ng-valid-[key]: 通过$setValidity指定的key合法时生效的样式

    - ng-invalid-[key]: 通过$setValidity指定的key不合法时生效的样式

    - ng-pristine: 未曾与表单控件交互时的样式

    - ng-dirty: 与控件发生了交互后生效的样式

    - ng-touched: 控件失去焦点的样式

    - ng-untouched: 控件没有失去焦点时的样式

    - ng-pending: 等待异步校验过程中的(in-progress)生效的样式

通过上述样式体现出来,user的name和email属性对应的控件加上了required属性, 当用户未输入name和email信息时会标红提示。

定制触发器更新模型

表单的每次输入都会触发与模型的同步和表单的校验。我们可以通过ngModelOptions指令改变模型同步和表单验证的触发条件。例如ng-model-options="{ updateOn: 'blur' }",会使Angular在输入控件失去焦点时更新模型或者进行校验。多个事件通过空白隔开,例如:

ng-model-options="{ updateOn: 'mousedown blur' }". 如果保持默认触.发条件并添加新的触发事件,加上“default”选项,

例如:ng-model-options="{ updateOn: 'default blur' }".

<div ng-controller="ExampleController">  
  <form>  
    Name:  
    <input type="text" ng-model="user.name" ng-model-options="{ updateOn: 'blur' }" /><br />  
    Other data:  
    <input type="text" ng-model="user.data" /><br />  
  </form>  
  <pre>username = "{{user.name}}"</pre>  
  <pre>userdata = "{{user.data}}"</pre>  
</div>  

 

angular.module('customTriggerExample', [])  
.controller('ExampleController', ['$scope', function($scope) {  
  $scope.user = {};  
}]);

 

 

分享到:
评论

相关推荐

    angularjs表单验证Demo

    AngularJS是前端开发流行框架,本Demo展示了表单验证的意义,及实现方法,掌握Angular基础指令,通过不同的指令元素可以拥有不同功能,并通过指令与表单合作验证,从而实现表单验证的敏捷化开发。

    AngularJS表单和输入验证实例

    AngularJS表单可以使用HTML原生的表单和控件,比如`&lt;input&gt;`、`&lt;select&gt;`、`&lt;button&gt;`和`&lt;textarea&gt;`等元素。AngularJS通过`ng-app`指令指定应用的范围,`ng-controller`用于指定视图对应的控制器,而`ng-model`则...

    AngularJs表单校验实例

    通过查看博文链接(由于实际链接无法在此提供,您需要自行访问https://bijian1013.iteye.com/blog/2392684),您可以获得一个完整的AngularJS表单校验示例,包括HTML模板和对应的JavaScript代码。这个示例会详细展示...

    AngularJS表单验证

    在AngularJS中,表单验证是一项关键功能,它允许开发者实时检查用户输入的数据,确保其符合预期的格式和规则,从而提高用户体验并减少服务器端的压力。AngularJS的表单验证机制是基于模型驱动的,这使得它在处理复杂...

    AngularJS表单基础

    此外,AngularJS表单还增加了自动校验和防止重复提交的功能。表单和输入元素的状态可以通过内置的CSS类来反映,例如`ng-valid`和`ng-invalid`,这些类的添加与否取决于表单元素的校验结果。 在示例代码中,通过`ng-...

    Angularjs 动态添加表单

    **AngularJS 动态添加表单** AngularJS 是一个强大的前端JavaScript框架,它极大地简化了构建交互式Web应用的过程。动态添加表单是AngularJS中一个重要的特性,它允许开发者在用户交互时动态地向页面中添加或移除...

    AngularJS表单编辑提交功能实例

    在AngularJS中,表单的创建和管理尤其简洁高效,而表单编辑提交功能是Web应用中常见且重要的功能之一。 首先,了解AngularJS中的表单控制是实现表单编辑提交的基础。AngularJS通过内置的ng-model指令将表单输入域...

    AngularJs demo 例子(表单验证) form

    **AngularJS 表单验证详解** AngularJS 是一个强大的前端JavaScript框架,主要用于构建动态Web应用。在AngularJS中,表单验证是一个至关重要的部分,它能够帮助开发者在用户提交数据之前进行实时验证,提高用户体验...

    AngularJS表单验证功能分析

    本文实例讲述了AngularJS表单验证功能。分享给大家供大家参考,具体如下: 在AngularJS的管辖下,每个表单form都会创建一个ngFormController的一个实例。在表单里面的每个input都会创建一个在这个实例下的...

    基于angularJS移动端表单验证效果

    一、AngularJS表单基础 AngularJS中的表单由`&lt;form&gt;`标签定义,通过`ngForm`指令与AngularJS进行绑定。表单内的输入控件通常会带有`ngModel`指令,用于双向数据绑定,使控件值与控制器中的变量同步。 二、内置验证...

    AngularJS表单详解及示例代码

    以下是对AngularJS表单及其相关特性的详细解释: 1. **双向数据绑定**:AngularJS的双向数据绑定使得表单输入字段与控制器中的模型直接关联。当用户在表单中输入数据时,模型值会自动更新;反之,如果模型值改变,...

    AngularJS表单提交实例详解

    本文实例讲述了AngularJS表单提交。分享给大家供大家参考,具体如下: AngularJS中的数据绑定 AngularJS创建实时模板来代替视图,而不是将数据合并进模板之后更新DOM。任何一个独立视图组件中的值都是动态替换的。 ...

    AngularJs表单校验功能实例代码

    AngularJs是谷歌开发的一个前端JavaScript框架,它允许...对于希望掌握AngularJs表单校验的开发者来说,这个实例是一个很好的参考,通过理解和实践这些基本概念和用法,可以进一步掌握更复杂场景下的表单校验实现。

    angularjs 表单密码验证自定义指令实现代码

    以上是根据给定的文件信息总结的关于AngularJS表单密码验证自定义指令实现的核心知识点。通过这些知识点的学习,开发者可以创建出更加复杂和符合业务需求的自定义指令,以提升应用的用户体验和数据的准确性。

    AngularJS表单基本操作

    下面我们将详细探讨AngularJS表单的基本操作。 1. **双向数据绑定**: AngularJS的核心特性之一就是双向数据绑定,这在表单中体现得尤为明显。在HTML中,`ng-model`指令用于将表单控件与控制器中的属性绑定。例如...

    AngularJS表单验证中级篇(3)

    自定义验证功能也是AngularJS表单验证中一个很重要的部分。虽然文章没有给出自定义验证的代码示例,但自定义验证通常包括创建一个自定义指令,然后在这个指令中注入表单控制器(`formController`)或者控件控制器(`...

    AngularJS实现表单验证

    AngularJS表单验证可以让你从一开始就写出一个具有交互性和可相应的现代HTML5表单。在AngularJS中,有许多表单验证指令。在这里,我们将谈谈几个最流行指令,然后我们将讨论如何编写自定义的验证。

Global site tag (gtag.js) - Google Analytics