W3C中文教程
全球最大最新的中文 Web 技术教程
HTML CSS SQL PHP COLORS MYSQL BOOTSTRAP
 

AngularJS 表单



AngularJS 中的表单提供输入控件的数据绑定和验证。


输入控件

输入控件是HTML输入元素:

  • input 元素
  • select 元素
  • button 元素
  • textarea 元素

数据绑定

输入控件通过使用 ng-model 指令来提供数据绑定。

<input type="text" ng-model="firstname">

该应用程序现在具有名为 firstname 的属性。

ng-model 指令将输入控制器绑定到应用程序的其余部分。

firstname 属性可以在控制器中引用:

Example

<script>
var app = angular.module('myApp', []);
app.controller('formCtrl', function($scope) {
    $scope.firstname = "John";
});
</script>
尝试一下 »

它也可以在应用程序的其他地方参考:

Example

<form>
First Name: <input type="text" ng-model="firstname">
</form>

<h1>You entered: {{firstname}}</h1>
尝试一下 »

复选框

复选框的值可为 truefalse。将 ng-model 指令应用于复选框,并在应用程序中使用它的值。

Example

如果选中复选框,则显示标题:

 <form>
    Check to show a header:
    <input type="checkbox" ng-model="myVar">
</form>

<h1 ng-show="myVar">My Header</h1>
尝试一下 »

单选按钮

使用 ng-model 指令可将单选按钮绑定到应用程序。

具有相同 ng-model 的单选按钮可以具有不同的值,但只使用所选的一个。

Example

根据所选单选按钮的值显示文本:

 <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>
尝试一下 »

myVar 的值将是 dogstutscars


选择框

使用 ng-model 指令可将选择框绑定到应用程序。

ng-model 属性中定义的属性将在选择框中具有所选选项的值。

 Example

根据所选选项的值显示文本:

<form>
Select a topic:
<select ng-model="myVar">
    <option value="">
    <option value="dogs">Dogs
    <option value="tuts">Tutorials
    <option value="cars">Cars
</select>
</form>
尝试一下 »

myVar 的值将是 dogstutscars


AngularJS表单实例

First Name:

Last Name:


form = {{user}}

master = {{master}}


应用程序代码

<div ng-app="myApp" ng-controller="formCtrl">
  <form novalidate>
    First Name:<br>
    <input type="text" ng-model="user.firstName"><br>
    Last Name:<br>
    <input type="text" ng-model="user.lastName">
    <br><br>
    <button ng-click="reset()">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>
尝试一下 »
Note HTML5中的 novalidate 属性是新的。它禁用任何默认浏览器验证。