AngularJS 表单
AngularJS 中的表单提供输入控件的数据绑定和验证。
输入控件
输入控件是 HTML 输入元素:
- input 元素
- select 元素
- button 元素
- textarea 元素
数据绑定
输入控件通过使用 ng-model 指令提供数据绑定。
<input type="text" ng-model="firstname">
应用程序现在有一个名为 firstname 的属性。
ng-model 指令将输入控制器绑定到应用程序的其余部分。
属性 firstname 可以在控制器中引用:
实例
<!DOCTYPE html><html lang="en"><script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.8.2/angular.min.js"></script><body><div ng-app="myApp" ng-controller="formCtrl"><form>First Name: <input type="text" ng-model="firstname"></form></div><script>var app = angular.module('myApp', []);app.controller('formCtrl', function($scope) {$scope.firstname = "John";});</script></body></html>
它也可以在应用程序的其他地方引用:
实例
<!DOCTYPE html><html><script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.8.2/angular.min.js"></script><body><div ng-app=""><form>姓氏: <input type="text" ng-model="firstname"></form><h2>你输入: {{firstname}}</h2></div><p>更改输入字段中的名称,您将看到标题中的名称相应地更改。</p></body></html>
Checkbox
复选框的值为 true 或 false。将 ng-model 指令应用于复选框,并在应用程序中使用其值。
实例
如果选中复选框,则显示标题:
<!DOCTYPE html><html><script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.8.2/angular.min.js"></script><body><div ng-app=""><form>选中以显示标题:<input type="checkbox" ng-model="myVar"></form><h2 ng-show="myVar">我的标题</h2></div><p>选中复选框时,标题的 ng-show 属性设置为 true。</p></body></html>
Radiobuttons
Bind radio buttons to your application with the ng-model directive.
Radio buttons with the same ng-model can have different values, but only the selected one will be used.
<!DOCTYPE html><html><script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.8.2/angular.min.js"></script><body ng-app=""><form>Pick a topic:<input type="radio" ng-model="myVar" value="dogs">Dogs<input type="radio" ng-model="myVar" value="tuts">Tutorials<input type="radio" ng-model="myVar" value="cars">Cars</form><div ng-switch="myVar"><div ng-switch-when="dogs"><h2>Dogs</h2><p>Welcome to a world of dogs.</p></div><div ng-switch-when="tuts"><h2>Tutorials</h2><p>Learn from examples.</p></div><div ng-switch-when="cars"><h2>Cars</h2><p>Read about cars.</p></div></div><p>ng-switch指令根据单选按钮的值隐藏和显示 HTML 部分。</p></body></html>
myVar 的值将是 dogs, tuts, 或者 cars。
Selectbox
使用 ng-model 指令将选择框绑定到应用程序。
ng-model 属性中定义的属性将具有 selectbox 中所选选项的值。
实例
根据所选选项的值显示一些文本:
<!DOCTYPE html><html><script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.8.2/angular.min.js"></script><body ng-app=""><form>选择一个主题:<select ng-model="myVar"><option value=""><option value="dogs">Dogs<option value="tuts">Tutorials<option value="cars">Cars</select></form><div ng-switch="myVar"><div ng-switch-when="dogs"><h2>Dogs</h2><p>Welcome to a world of dogs.</p></div><div ng-switch-when="tuts"><h2>Tutorials</h2><p>Learn from examples.</p></div><div ng-switch-when="cars"><h2>Cars</h2><p>Read about cars.</p></div></div><p>ng-switch 指令根据下拉列表的值隐藏和显示 HTML 部分。</p></body></html>
myVar 的值将是 dogs, tuts, 或者 cars。
程序代码
<!DOCTYPE html><html><script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.8.2/angular.min.js"></script><body><div ng-app="myApp" ng-controller="formCtrl"><form novalidate="">姓氏:<br><input type="text" ng-model="user.firstName"><br>名字:<br><input type="text" ng-model="user.lastName"><br><br><button ng-click="reset()">重置</button></form><p>form = {{user}}</p><p>master = {{master}}</p></div><script>var app = angular.module('myApp', []);app.controller('formCtrl', function($scope) {$scope.master = {firstName:"John", lastName:"Doe"};$scope.reset = function() {$scope.user = angular.copy($scope.master);};$scope.reset();});</script></body></html>
实例解释
ng-app 指令定义了 AngularJS 应用程序。ng-controller 指令定义应用程序控制器。
ng-model 指令将两个输入元素绑定到模型中的 用户 对象。
formCtrl 控制器为 主 对象设置初始值,并定义 reset() 方法。
reset() 方法将用户对象设置为主对象。
ng-click 指令仅在单击按钮时才会调用 reset() 方法。
此应用程序不需要 novalidate 属性,但通常在 AngularJS 表单中使用它来覆盖标准 HTML5 验证。