關於AngularJS驗證表單功能的實作程式碼分析
這篇文章主要介紹了AngularJS表單驗證功能,結合具體實例形式分析了AngularJS表單驗證的操作步驟、實作技巧與相關注意事項,需要的朋友可以參考下
本文實例講述了AngularJS表單驗證功能。分享給大家供大家參考,具體如下:
在AngularJS的管轄下,每個表單form都會建立一個ngFormController的一個實例。在表單裡面的每個input都會建立一個在這個實例下的ngModelController實例,用來控制每個input的行為。
先從簡單的驗證開始。
AngularJs的ngModelController提供了幾個屬性:$pristine
;$dirty
;$valid
;#$invalid
;$error
pristine
:表單並沒有改變。 dirty
:表單改變了。 valid
:全部控制項符合驗證規則。 invalid
:至少有一個控制項不符合驗證規則。 error
:有錯,但是不知道什麼錯。
建立一個表單如下:
<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>
首先每個form都要有自己的name。透過這個name來對自己下面的input進行控制。而後,每個input標籤都要有自己的name。 name是很關鍵的一步,用來識別每個不同的input,從而識別不同的ngModelController。使用pattern來設定自己的正規表示式規則。使用$error來偵測這個正規表示式是否正確。並把它賦予給ng-show指令。如果有錯,整個$error 就會回傳true,顯示設定好的提示訊息,一直到正規表示式通過,$error回傳false,ng-show 對其進行隱藏。
以上的簡單例子是沒有自己去重新設定控制器的行為,一切都是AngularJs預設的。可以看到ng-show裡面的判斷程式碼其實是可以交給後面的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> <!--对按钮进行动态锁定--> <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错误,返回false,无错误,返回true*/ }; $scope.submit=function(ngFormController){ return ngFormController.$invalid; /*valid的取反*/ }; });
這裡直接在控制器裡面的ngModelController裡進行判斷。裡面有一個坑,就是判斷$valid 等等這類屬性是沒有帶參數的。而判斷$error 則需要表明“判斷什麼”,我傳了自己的一個正規表示式給他。
AngularJs也可以對表單的提交按鈕進行「鎖定」。但要注意的是,此時BUTTON對應的Controller不再是針對某一個input的ngModelController,而是針對整個form的ngFormController了,因此,裡面的$invalid 是判斷所有的input有沒有問題,全部都沒問題的時候才會解鎖。
思考:正規表示式或minlength類似這種限制,能否寫在JS檔案裡面。
以上是關於AngularJS驗證表單功能的實作程式碼分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

如何在Laravel中使用中間件處理表單驗證,需要具體程式碼範例引言:在Laravel中,表單驗證是非常常見的任務。為了確保使用者輸入的資料的有效性和安全性,我們通常會對表單提交的資料進行驗證。 Laravel提供了一個方便的表單驗證功能,同時也支援使用中間件來處理表單驗證。本文將詳細介紹如何在Laravel中使用中間件處理表單驗證,並提供具體的程式碼範例

PHP是一種非常流行的程式語言,而CodeIgniter4是一種常用的PHP框架。在開發Web應用程式時,使用框架是非常有幫助的,它可以加速開發過程、提高程式碼品質、降低維護成本。本文將介紹如何使用CodeIgniter4框架。安裝CodeIgniter4框架CodeIgniter4框架可以從官方網站(https://codeigniter.com/)下載。下

如何使用Flask-WTF實作表單驗證Flask-WTF是一個用於處理Web表單驗證的Flask擴展,它提供了一種簡潔、靈活的方式來驗證使用者提交的資料。本文將向您展示如何使用Flask-WTF擴充來實作表單驗證。安裝Flask-WTF要使用Flask-WTF,首先需要安裝它。可以使用pip指令來安裝:pipinstallFlask-WTF導入所需模組在F

表單驗證是Web應用程式開發中非常重要的環節,它能夠在提交表單資料之前對資料進行有效性檢查,避免應用程式出現安全漏洞和資料錯誤。使用Golang可以輕鬆實現網頁應用程式的表單驗證,本文將介紹如何使用Golang來實作網頁應用程式的表單驗證。一、表單驗證的基本要素在介紹如何實作表單驗證之前,我們需要知道表單驗證的基本要素是什麼。表單元素:表單元素是指

Laravel是一個流行的PHPWeb開發框架,它提供了許多方便的功能來加快開發者的工作。其中,LaravelValidation是一種非常實用的功能,它可以幫助我們輕鬆驗證表單請求和使用者輸入的資料。本文將介紹如何使用LaravelValidation驗證表單請求。什麼是LaravelValidationLaravelValidation是La

PHP作為一種廣泛應用於Web開發的腳本語言,其表單驗證和過濾是非常重要的一部分。在使用者提交表單的過程中,需要對使用者輸入的資料進行驗證和過濾,以確保資料的安全性和有效性。本文將介紹PHP中如何進行表單驗證和篩選的方法和技巧。一、表單驗證表單驗證是指對使用者輸入的資料進行檢查,以確保資料符合特定的規則和要求。常見的表單驗證包括必填項目的驗證、信箱格式、手機號碼格

PHP表單驗證技巧:如何使用filter_input函數檢驗使用者輸入引言:在開發Web應用程式時,表單是與使用者互動的重要工具。而正確地驗證使用者輸入,是確保資料的完整性和安全性的關鍵步驟之一。 PHP提供了filter_input函數,可以方便地對使用者輸入進行驗證和過濾。本文將介紹如何使用filter_input函數來檢驗使用者輸入,並提供相關的程式碼範例。一、

Javascript 是一個非常有個性的語言. 無論是從程式碼的組織, 還是程式碼的程式設計範式, 或物件導向理論都獨具一格. 而很早就在爭論的Javascript 是不是物件導向語言這個問題, 顯然已有答案. 但是, 即使Javascript 叱吒風雲二十年, 如果想要看懂jQuery, Angularjs, 甚至是React 等流行框架, 觀看《黑馬雲課堂JavaScript 高級框架設計視頻教程》就對了。
