AngularJS教程十九—— 表單校驗
表單校驗
表單校驗校驗表單輸入校驗,通過對w5c-validator-angular(示例)的修改來實現
一 使用方法:
<form action="#" class="form-horizontal w5c-form" w5c-form-validate novalidate name="validateForm">
<div class="form-body">
<div class="form-group">
<label class="col-md-3 control-label">使用者編號</label>
<div class="col-md-4">
<input type="text" class="form-control" name="userCode" ng-model="user.userCode" required>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">使用者姓名</label>
<div class="col-md-4">
<input type="text" class="form-control" name="userName" ng-model="user.userName"
required ed-validate="name" ng-maxlength="10">
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">性別</label>
<div class="col-md-4">
<select class="form-control" name="gender" ng-model="user.gender"
ng-options="opt.value as opt.name for opt in options.gender" required></select>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">手機號碼</label>
<div class="col-md-4">
<input type="text" class="form-control" ng-model="user.telephone">
</div>
</div>
<div class="form-group" ng-show="!user.userId && settings.deptPosEnable">
<label class="col-md-3 control-label">所屬崗位</label>
<div class="col-md-4">
<input type="text" class="form-control" ng-model="deptPos.name" readonly>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">狀態</label>
<div class="col-md-4">
<select class="form-control" ng-model="user.userState"
ng-options="opt.value as opt.name for opt in options.userstate"></select>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">使用者描述</label>
<div class="col-md-4">
<textarea class="form-control" rows="3" ng-model="user.remark"></textarea>
</div>
</div>
</div>
<div class="form-actions">
<div class="row">
<div class="col-md-offset-3 col-md-4">
<button type="button" class="btn green" w5c-form-submit="userGrid.save()"><i
class="fa fa-save"></i> 儲存
</button>
<button type="button" class="btn default" ng-click="userGrid.cancel();validateForm.reset();"><i
class="fa fa-times"></i> 取消
</button>
</div>
</div>
</div>
</form>
有如下要求:
form
節點需要增加class="w5c-form"
,並增加w5c-form-validate
和novalidate
屬性form
節點和需要校驗的節點都必須要有name
屬性,其中form
的name
值在當前控制器中有一個reset()
方法,用來清除校驗結果- 提交事件由
ng-click
改為w5c-form-submit
二 支援型別:
其中AngularJS原生支援很多種驗證規則,比如:require
(必填項),email
,pattern
(正則),maxlength
,minlength
,number
,url
,max
,min
,由於原生的maxlength
在大多知道的長度後不允許繼續輸入,所以maxlength
,minlength
使用ng-maxlength
,ng-minlength
代替。
此外,還提供以下自定義校驗,通過ed-validate
自定義屬性來指定,比如上例中的“使用者姓名”。
phone
// 電話號碼mobile
// 手機號碼phoneOrMobile
手機或電話integer
// 整數chinese
// 中文english
// 英語username
// 使用者名稱name
// 姓名,可以是中文或英文email
// 電子郵件
三 自定義校驗:
如果以上不能滿足,可以自定義校驗:
App.directive('menuName', function() {
return {
restrict:"A",
require:"ngModel",
link:function(scope, ele, attrs, ngModelController){
ngModelController.$parsers.push(function(viewValue){
var validate = true;// 這裡寫自己的校驗規則,當ng-model繫結的值改變時即能進行校驗
ngModelController.$setValidity('pattern', validate);
$(elem).attr('patternMsg', '自定義校驗失敗提示');// 如果需要在這裡動態提示的話,下面具體講
return viewValue;
});
}
};
});
對於上面的示例,使用方式如下:
<input type="text" menu-name class="form-control" name="menuName" ng-model="menu.menuName" required patternMsg="標題格式不正確!">
四 校驗失敗提示資訊:
對於預設提示資訊如果不能滿足,可以通過自定義屬性patternMsg
來指定。
五 注意:
取消編輯時,需要重置form
的校驗狀態,如用法示例中的:validateForm.reset()
,這裡validateForm
為form
的name
值。
相關文章
- vue表單校驗方法Vue
- element-ui自定義表單校驗規則及常用表單校驗UI
- element-ui的----el-form表單校驗巢狀表單校驗(表單多層巢狀)+el-table和el-form巢狀使用表單校驗UIORM巢狀
- flutter - 登陸介面&表單校驗Flutter
- 小程式自定義表單校驗
- 校驗表單如何擺脫 if else ?
- 正整數表單校驗規則
- js-動態表單校驗-吐血總結最近遇到的變態表單校驗2---element+原生JS
- [React]antd表單校驗函式寫法React函式
- vue elementUI 表單校驗(多層巢狀)VueUI巢狀
- javascript表單賬戶密碼校驗提交JavaScript密碼
- 表單驗證教程簡介
- AngularJS自定義表單控制元件AngularJS控制元件
- vxe-form table 表單使用資料校驗ORM
- Vue中form表單常用rules校驗規則VueORM
- Gin(四):表單提交校驗和模型繫結模型
- Angular8 form 表單對隱藏元素取消表單校驗規則AngularORM
- Spring MVC 檔案上傳、Restful、表單校驗框架SpringMVCREST框架
- elementUI 不用在寫rule來作表單校驗啦UI
- element-ui 表單校驗 Rules 配置 常用黑科技UI
- iview Form 表單校驗時,必傳符號錯位,校驗無效的某個原因ViewORM符號
- 時間序列的ADF校驗(單位根校驗)
- van-dialog彈窗非同步關閉-校驗表單非同步
- VeeValidate在vue專案裡表單校驗應用案例Vue
- [無心插柳]簡單實現常用的表單校驗函式函式
- pytest教程之多重校驗
- 學習LayUI時自研的表單引數校驗框架UI框架
- Vue Element-ui表單校驗規則,你掌握了哪些?VueUI
- Angular如何在模板驅動表單中自定義校驗器Angular
- antd頁面多表單校驗
- Vee-validate 父元件獲取子元件表單校驗結果元件
- Lumen 表單校驗配置 validation 的中文 (多語言) 錯誤語
- hive表中yyyymmdd格式日期校驗Hive
- angularjs學習第五天筆記(第二篇:表單驗證升級篇)AngularJS筆記
- Spring WebFlux 基礎教程:引數校驗SpringWebUX
- element-ui表單校驗:有值卻不透過 el-form validateUIORM
- Android需求之RxJava2實現表單校驗(註冊登入)AndroidRxJava
- elementUI中form表單的upload上傳圖片及校驗總結UIORM
- 簡單介紹v-for中動態校驗el-form表單項的實踐ORM