w5cValidator【AngularJS】 2.0 版本發布


w5cValidator 插件基於angular原有的表單驗證,在原有的基礎上擴展了一些錯誤提示的功能,讓大家不用在每個表單上寫一些提示信息的模板,專心的去實現業務邏輯。

代碼地址:https://github.com/why520crazy/w5c-validator-angular

關於v1.x版本的介紹參見:http://www.ngnice.com/posts/69f774dc4d3190

v1.0版本雖然簡單的實現了想要的功能,但是沒有按照模塊獨立出來,而且有很多代碼不是很規范,這次正好抽時間重構了代碼,直接升級到了 v2.0.0版本,同時也完善了一些展示案例功能。

如果你已經足夠了解了angular或者之前使用過 w5cValidator,可以直接看展示程序:

展示地址:http://why520crazy.github.io/w5c-validator-angular

使用步驟:

  1. HTML 中引用 dest/w5cValidator.js;
  2. 啟動module引用 "w5c.validator",如:
    var app = angular.module("app", ["w5c.validator"]);
  3. app.config事件中配置全局屬性和顯示規則:

    app.config(["w5cValidatorProvider", function (w5cValidatorProvider) {
    
         // 全局配置
         w5cValidatorProvider.config({
             blurTrig   : false,
             showError  : true,
             removeError: true
    
         });
         w5cValidatorProvider.setRules({
             email   : {
                 required: "輸入的郵箱地址不能為空",
                 email   : "輸入郵箱地址格式不正確"
             },
             username: {
                 required: "輸入的用戶名不能為空",
                 pattern : "用戶名必須輸入字母、數字、下划線,以字母開頭"
             },
             password: {
                 required : "密碼不能為空",
                 minlength: "密碼長度不能小於{minlength}",
                 maxlength: "密碼長度不能大於{maxlength}"
             },
             number  : {
                 required: "數字不能為空"
             }
         });
     }]);
    

      

  4. 在HTML模板中form上使用指令 w5c-form-validate 和 w5c-submit
    w5c-form-validate指令表示該表單采用 w5cValidator的驗證規則;
    w5c-submit 表示驗證成功后調用的事件,當然w5c-submit可以不填寫;

    <form class="form-horizontal w5c-form demo-form" role="form" w5c-submit="vm.saveEntity()"
       w5c-form-validate="vm.validateOptions" novalidate name="validateForm">
     <div class="form-group">
         <label class="col-sm-2 control-label">郵箱</label>
    
         <div class="col-sm-10">
             <input type="email" name="email" ng-model="entity.email" required="" class="form-control"
                    placeholder="輸入郵箱">
         </div>
     </div>
     <div class="form-group">
         <label class="col-sm-2 control-label">用戶名</label>
    
         <div class="col-sm-10">
             <input required="" ng-pattern="/^[A-Za-z]{1}[0-9A-Za-z_]{1,19}$/" ng-model="entity.name"
                    class="form-control" name="username" placeholder="輸入用戶名">
         </div>
     </div>
     <div class="form-group">
         <label class="col-sm-2 control-label">密碼</label>
    
         <div class="col-sm-10">
             <input type="password" required="" ng-model="entity.password" name="password"
                    class="form-control" ng-minlength="5" ng-maxlength="15"
                    placeholder="輸入密碼">
         </div>
     </div>
     <div class="form-group">
         <label class="col-sm-2 control-label">數字</label>
    
         <div class="col-sm-10">
             <input type="number" required="" ng-model="entity.number" name="number" class="form-control"
                    placeholder="輸入數字">
         </div>
     </div>
     <div class="form-group" ng-show="validateForm.$errors.length > 0 && vm.showErrorType == 2">
         <label class="col-sm-2 control-label"></label>
    
         <div class="col-sm-10">
             <div class="alert alert-danger"></div>
         </div>
     </div>
    
     <div class="form-group">
         <div class="col-sm-offset-2 col-sm-10">
             <button type="submit" class="btn btn-success"> 驗證</button>
         </div>
     </div>
    </form>

     

注意事項:

  1. 由於驗證使用的是 angular的form驗證,所以必須要保證form和驗證的元素都要有name屬性;
  2. w5cValidatorProvider.setRules方法設置的rules名稱是和表單驗證元素的name相對應的;
  3. 如果你不想把驗證成功事件w5c-submit寫在 form上,可以直接在form里面的其他元素上使用w5cFormSubmit指令,如:
    <button type="buttom" w5c-form-submit="vm.saveEntity()" class="btn btn-success"> 驗證</button>
    
  4. 如果你clone了代碼。本地直接打開example/index.html是不可以運行,因為我使用了 $http服務去獲取 js css html,所以必須要在本地搭建服務端程序,如果你有nodejs環境,運行npm install 安裝module后再運行 grunt server ,如果沒有grunt,用命令npm install grunt-cli -g安裝, mac下需要 sudo npm install grunt-cli -g

參數

名稱 默認值 作用
blurTrig false 光標移除元素后是否驗證並顯示錯誤提示信息
showError true 可以是bool和function,每個元素驗證不通過后調用該方法顯示錯誤信息,默認true,顯示錯誤信息在元素的后面。
removeError true 可以是bool和function,每個元素驗證通過后調用該方法移除錯誤信息,默認true,驗證通過后在元素的后面移除錯誤信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM