使用AngularJS處理單選框和復選框的簡單方法
AngularJS對表單的處理相當簡單。在AngularJS使用雙向數(shù)據(jù)綁定方式進行表單驗證的時候,實質(zhì)上它在幫我們進行表單處理。
使用復選框的的例子有很多,同時我們對它們的處理方式也有很多。這篇文章中我們將看一看把復選框和單選按鈕同數(shù)據(jù)變量綁定的方法和我們對它的處理辦法。
創(chuàng)建Angular表單
在這篇文章里,我們需要兩個文件:index.html和app.js。app.js用來保存所有的Angular代碼(它不大),而index.html是動作運行的地方。首先我們創(chuàng)建AngularJS文件。
// app.js var formApp = angular.module('formApp', []) .controller('formController', function($scope) { // we will store our form data in this object $scope.formData = {}; });
在這個文件里,我們所做的就是創(chuàng)建Angular應用。其中我們還創(chuàng)建了一個控制器和一個用來保存所有表單數(shù)據(jù)的對象。
下面我們看看index.html文件,在這個文件里,我們創(chuàng)建了表單,然后進行了數(shù)據(jù)綁定。我們使用了Bootstrap快速地對頁面進行布局。
<-- index.html --> <!DOCTYPE html> <html> <head> <!-- CSS --> <!-- load up bootstrap and add some spacing --> <link rel="stylesheet" > <style> body { padding-top:50px; } form { margin-bottom:50px; } </style> <!-- JS --> <!-- load up angular and our custom script --> <script src="http://code.angularjs.org/1.2.13/angular.js"></script> <script src="app.js"></script> </head> <!-- apply our angular app and controller --> <body ng-app="formApp" ng-controller="formController"> <div class="col-xs-12 col-sm-10 col-sm-offset-1"> <h2>Angular Checkboxes and Radio Buttons</h2> <form> <!-- NAME INPUT --> <div class="form-group"> <label>Name</label> <input type="text" class="form-control" name="name" ng-model="formData.name"> </div> <!-- =============================================== --> <!-- ALL OUR CHECKBOXES AND RADIO BOXES WILL GO HERE --> <!-- =============================================== --> <!-- SUBMIT BUTTON (DOESNT DO ANYTHING) --> <button type="submit" class="btn btn-danger btn-lg">Send Away!</button> </form> <!-- SHOW OFF OUR FORMDATA OBJECT --> <h2>Sample Form Object</h2> <pre> {{ formData }} </pre> </div> </body> </html>
創(chuàng)建完成之后,我們就有了具有name輸入的表單了。如果一切都按照我們設想的運行,那么如果你在name輸入中鍵入內(nèi)容,那么你應當可在下面的<pre>標簽段看到所輸入的內(nèi)容了.
復選框
在表單里,復選框非常普遍。下面我們將看看Angular是怎樣使用ngModel實現(xiàn)數(shù)據(jù)綁定的。如果有許多復選框,那么有時在把它綁定到對象的時候如何進行數(shù)據(jù)處理會讓人不知所措。
在我們創(chuàng)建的formData對象的內(nèi)部,我們還創(chuàng)建了另一個對象。我們把它稱為favoriteColors,它請求用戶選擇最喜歡的顏色:
<!-- MULTIPLE CHECKBOXES --> <label>Favorite Colors</label> <div class="form-group"> <label class="checkbox-inline"> <input type="checkbox" name="favoriteColors" ng-model="formData.favoriteColors.red"> Red </label> <label class="checkbox-inline"> <input type="checkbox" name="favoriteColors" ng-model="formData.favoriteColors.blue"> Blue </label> <label class="checkbox-inline"> <input type="checkbox" name="favoriteColors" ng-model="formData.favoriteColors.green"> Green </label> </div>
當用戶點擊上面復選框中的任意一個時,他們立刻看到formData對象發(fā)生了變更。我們把復選框的值存儲到fromData.favoriteColors對象里。這樣我們就把復選框的值傳遞給了服務器了。
復選框點擊處理
有時候,當某人點擊了復選框后,你需要對其進行處理。你需要做的處理可能如下:計算某個值,更改某些變量或者進行數(shù)據(jù)綁定。要實現(xiàn)這些,你要使用$scope.yourFunction = function() {};在app.js內(nèi)創(chuàng)建函數(shù)。接著你就可以在的的復選框上使用ng-click="yourFunction()"來調(diào)用這個函數(shù)了。
處理表單復選框的方法有許多種,Angular提供了一個非常簡單的方法:使用ng-click調(diào)用用戶自定義的函數(shù)。
自定義復選框?qū)闹?/strong>
默認情況下,綁定到復選框上的值是ture或者false。有時候,我們希望返回的其它值。Angular提供了一種非常好的處理方式:使用ng-ture-value和ng-false-value。
我們添加另外一組復選框,不過這時侯我們使用的不再是true或者false,而是用戶自定義的值。
<!-- CUSTOM VALUE CHECKBOXES --> <label>Personal Question</label> <div class="checkbox"> <label> <input type="checkbox" name="awesome" ng-model="formData.awesome" ng-true-value="ofCourse" ng-false-value="iWish"> Are you awesome? </label> </div>
另外,現(xiàn)在我們還在formData對象里增加了一個awesome變量。如果此時設置這個值為true,那么返回的值應該是ofCourse,如果設置為false,那么返回的值為iWish。
復選框
依據(jù) 官方說明文檔, 這是和單選框不同之處:
<input type="radio" ng-model="string" value="string" [name="string"] [ng-change="string"] ng-value="string">
需要了解更多有關(guān)復選框的信息,請關(guān)注Angular 復選框說明文檔.
單選按鈕
單選按鈕比復選框容易些,就在于無需存儲多選項數(shù)據(jù). 單選就是一個值. 下面添加一個單選按鈕看看.
<!-- RADIO BUTTONS --> <label>Chicken or the Egg?</label> <div class="form-group"> <div class="radio"> <label> <input type="radio" name="chickenEgg" value="chicken" ng-model="formData.chickenEgg"> Chicken </label> </div> <div class="radio"> <label> <input type="radio" name="chickenEgg" value="egg" ng-model="formData.chickenEgg"> Egg </label> </div> </div>
就像這樣,單選按鈕就綁定到數(shù)據(jù)對象了.
單選按鈕用法
據(jù) 官方文檔, 這是提供的選項:
<input type="radio" ng-model="string" value="string" [name="string"] [ng-change="string"] ng-value="string">
相關(guān)文章
AngularJS操作鍵值對象類似java的hashmap(填坑小結(jié))
我們知道java的hashmap中使用最多的是put(...),get(...)以及remove()方法,那么在angularJS中如何創(chuàng)造(使用)這樣一個對象呢?今天小編通過本文給大家分享下,感興趣的朋友一起學習吧2016-11-11使用 Github Actions 自動部署 Angular 應用到 Github Pages的方法
這篇文章主要介紹了使用 Github Actions 自動部署 Angular 應用到 Github Pages,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07AngularJS service之select下拉菜單效果
這篇文章主要為大家詳細介紹了AngularJS service之select下拉菜單效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07