最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

AngularJS表單驗(yàn)證功能分析

 更新時(shí)間:2017年05月26日 08:51:34   作者:面具哥布林  
這篇文章主要介紹了AngularJS表單驗(yàn)證功能,結(jié)合具體實(shí)例形式分析了AngularJS表單驗(yàn)證的操作步驟、實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了AngularJS表單驗(yàn)證功能。分享給大家供大家參考,具體如下:

在AngularJS的管轄下,每個(gè)表單form都會(huì)創(chuàng)建一個(gè)ngFormController的一個(gè)實(shí)例。在表單里面的每個(gè)input都會(huì)創(chuàng)建一個(gè)在這個(gè)實(shí)例下的ngModelController實(shí)例,用以控制每個(gè)input的行為。

首先先從簡單的驗(yàn)證開始。

AngularJs的ngModelController提供了幾種屬性:$pristine;$dirty;$valid;$invalid;$error

pristine:表單并沒有改變。
dirty:表單改變了。
valid:全部控件符合驗(yàn)證規(guī)則。
invalid:至少有一個(gè)控件不符合驗(yàn)證規(guī)則。
error:有錯(cuò),但是不知道什么錯(cuò)。

創(chuàng)建一個(gè)表單如下:

<form name="userForm" method="#" action="#">
  <label for="name">用戶名1</label>
  <input id="name" name="name" type="text" ng-model="users.name" pattern="^\w{6,18}$" required>
  <span ng-show="userForm.name.$error.pattern">用戶名必須XXXX</span>
</form>

首先每個(gè)form都要有自己的name。通過這個(gè)name來對自己下面的input進(jìn)行控制。而后,每個(gè)input標(biāo)簽都要有自己的name。name是很關(guān)鍵的一步,被用于識(shí)別每個(gè)不同的input,從而識(shí)別不同的ngModelController。使用pattern來設(shè)置自己的正則表達(dá)式規(guī)則。使用$error來檢測這個(gè)正則表達(dá)式是否正確。并把它賦予給ng-show指令。如果有錯(cuò),整個(gè)$error 就會(huì)返回true,顯示設(shè)置好的提示信息,一直到正則表達(dá)式通過,$error返回false,ng-show 對其進(jìn)行隱藏。

以上的簡單例子是沒有自己去重新設(shè)置控制器的行為,一切都是AngularJs默認(rèn)的。可以看到ng-show里面的判斷代碼其實(shí)是可以交給后面的JS完成的,這樣可以看到ngModelController的具體過程。

<!--html-->
<form name="userForm" ng-controller="main" method="#" action="#">
  <label for="name">用戶名1</label>
  <input id="name" name="name" type="text" ng-model="users.name" pattern="^\w{6,18}$" required>
  <span style="color:red" ng-show="showError(userForm.name,'pattern')">用戶名必須XX</span>
  <span style="color:green" ng-show="showSuccess(userForm.name)">成功!</span>
  <!--對按鈕進(jìn)行動(dòng)態(tài)鎖定-->
  <button class="btn btn-primary btn-lg" ng-disabled="submit(userForm)">SAVE</button>
</form>

/*JS*/
app.controller("main",function($scope){
  $scope.showError=function(ngModelController,abc){
    return ngModelController.$error[abc];
  };
  $scope.showSuccess=function(ngModelController){
    return ngModelController.$valid; /*至少有1錯(cuò)誤,返回false,無錯(cuò)誤,返回true*/
  };
   $scope.submit=function(ngFormController){
    return ngFormController.$invalid; /*valid的取反*/
  };
});

這里直接在控制器里面的ngModelController里進(jìn)行判斷。里面有一個(gè)坑,就是判斷$valid 等等這類屬性是沒有帶參數(shù)的。而判斷$error 則需要表明“判斷什么”,我傳了自己的一個(gè)正則表達(dá)式給他。

AngularJs還可以對表單的提交按鈕進(jìn)行“鎖定”。但要注意的是,此時(shí)BUTTON對應(yīng)的Controller不再是針對某一個(gè)input的ngModelController,而是針對整個(gè)form的ngFormController了,因此,里面的$invalid 是判斷所有的input有沒有問題,全部都沒問題的時(shí)候才會(huì)解鎖。

思考:正則表達(dá)式或者minlength類似這種限制,能否寫在JS文件里面。

更多關(guān)于AngularJS相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《AngularJS指令操作技巧總結(jié)》、《AngularJS入門與進(jìn)階教程》及《AngularJS MVC架構(gòu)總結(jié)

希望本文所述對大家AngularJS程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • angularJS 中$attrs方法使用指南

    angularJS 中$attrs方法使用指南

    這篇文章主要介紹了angularJS 中$attrs方法使用指南,需要的朋友可以參考下
    2015-02-02
  • Angular 4 指令快速入門教程

    Angular 4 指令快速入門教程

    本篇文章主要介紹了Angular 4 指令快速入門教程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • 詳解AngularJS中的filter過濾器用法

    詳解AngularJS中的filter過濾器用法

    這篇文章主要介紹了AngularJS中的filter過濾器用法,包括其在模版中和在controller以及service的常見應(yīng)用場合,需要的朋友可以參考下
    2016-01-01
  • Angular4.0動(dòng)畫操作實(shí)例詳解

    Angular4.0動(dòng)畫操作實(shí)例詳解

    這篇文章主要介紹了Angular4.0動(dòng)畫操作,結(jié)合實(shí)例形式詳細(xì)分析了Angular4.0動(dòng)畫的原理、定義及使用等相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • angular中ui calendar的一些使用心得(推薦)

    angular中ui calendar的一些使用心得(推薦)

    下面小編就為大家?guī)硪黄猘ngular中ui calendar的一些使用心得(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • AngularJS教程之環(huán)境設(shè)置

    AngularJS教程之環(huán)境設(shè)置

    本文主要介紹AngularJS環(huán)境設(shè)置,學(xué)習(xí)AngularJS的朋友肯定要設(shè)置開發(fā)軟件的環(huán)境,這里詳細(xì)介紹安裝設(shè)置流程,有需要的朋友可以參考下
    2016-08-08
  • AngularJS路由實(shí)現(xiàn)頁面跳轉(zhuǎn)實(shí)例

    AngularJS路由實(shí)現(xiàn)頁面跳轉(zhuǎn)實(shí)例

    這篇文章主要為大家詳細(xì)介紹了AngularJS路由實(shí)現(xiàn)頁面跳轉(zhuǎn)的實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 詳細(xì)分析使用AngularJS編程中提交表單的方式

    詳細(xì)分析使用AngularJS編程中提交表單的方式

    這篇文章主要介紹了詳細(xì)分析使用AngularJS提交表單的方式,AngularJS是非常熱門的JavaScript庫,文中展示了AngularJS在前端與后端的PHP進(jìn)行交互的場景,需要的朋友可以參考下
    2015-06-06
  • 簡介AngularJS的HTML DOM支持情況

    簡介AngularJS的HTML DOM支持情況

    這篇文章主要介紹了AngularJS的HTML DOM支持情況,包括ng-hide和ng-click指令的使用,需要的朋友可以參考下
    2015-06-06
  • Angular跨字段驗(yàn)證器中如何直接調(diào)用其它獨(dú)立的驗(yàn)證器

    Angular跨字段驗(yàn)證器中如何直接調(diào)用其它獨(dú)立的驗(yàn)證器

    我們在開發(fā)的時(shí)候都會(huì)用到表單,那么驗(yàn)證器就是必不可少的東西,這篇文章主要給大家介紹了關(guān)于在Angular跨字段驗(yàn)證器中如何直接調(diào)用其它獨(dú)立的驗(yàn)證器的相關(guān)資料,需要的朋友可以參考下
    2022-03-03

最新評論

镇宁| 托里县| 浦城县| 屏边| 石景山区| 府谷县| 南宫市| 扎鲁特旗| 双江| 珲春市| 凉山| 略阳县| 河源市| 福海县| 恩平市| 桃园县| 嘉义市| 定结县| 清涧县| 余江县| 北流市| 天台县| 裕民县| 贵溪市| 乌兰浩特市| 玛沁县| 旅游| 绥江县| 保康县| 察哈| 太康县| 竹溪县| 商水县| 江源县| 汕尾市| 旌德县| 浦江县| 高尔夫| 凤凰县| 武隆县| 通道|