天天看點

backbone學習筆記:模型(Model)(2)屬性驗證

backbone的屬性驗證有2種方法:

  1.backbone自帶簡單的驗證方法,但是驗證規則需要自己實作

     通過validate()方法進行驗證,驗證規則寫在此方法裡。     

backbone學習筆記:模型(Model)(2)屬性驗證
backbone學習筆記:模型(Model)(2)屬性驗證

那麼什麼時候調用validate()完成驗證呢?

   在調用save()方法時validate()方法被觸發,來完成驗證,如果validate()傳回錯誤資訊,那麼save()方法會停止執行,模型的屬性也不會被更改。失敗的驗證還會觸發invalid事件。

   如果在set()方法中傳入參數{validate:true},作為最後一個參數,也會觸發validate()方法,完成驗證。

   var room =new roommodel()

    room.set('name','test',{validate:true})

以上都是屬性的自動驗證

屬性的手動驗證:room.isvalid()//傳回true/false,這種驗證不會觸發invalid事件 

  2.利用backbone擴充插件backbone.validation進行屬性驗證,backbone.validation重寫了validate()方法,常用的驗證規則已經實作,可以直接使用,節約時間

    首先要從github網站上下載下傳backbone.validation,然後引用檔案backbone-validation.js。

   使用backbone.validation.mixin來擴充backbone.object():_.extend(backbone.model.prototype,backbone.validation.mixin)

    在validation屬性中定義具體的驗證規則    

backbone學習筆記:模型(Model)(2)屬性驗證
backbone學習筆記:模型(Model)(2)屬性驗證

     驗證屬性:

          1. required:驗證模型的某個屬性是否必須,值為true/false

          2.acceptance:驗證某些事情是否被接收,值為true/false

          3.min:驗證屬性值,必須為數字,模型某個屬性值隻有大于或等于指定的最小值才能驗證成功

          4.max:驗證屬性值,必須為數字,模型某個屬性值隻有小于或等于指定的最大值才能驗證成功

          5.range:驗證屬性值,必須為數字,模型某個屬性值隻有等于指定的某個數值或者在指定的兩個值之間才能驗證成功

          6.length:驗證屬性值,模型某個屬性值的長度必須為指定長度的字元串。

          7.minlength:驗證屬性值,必須為數字,模型某個屬性值的長度隻有大于或等于指定的最小值才能驗證成功

          8.maxlength:驗證屬性值,必須為數字,模型某個屬性值的長度隻有小于或等于指定的最大值才能驗證成功

          9.rangelength:驗證屬性值,必須為數字,模型某個屬性值的長度隻有等于指定的某個數值或者在指定的兩個值之間才能驗證成功

          10.one of:用來驗證屬性值,必須等于指定的數組當中的一個元素,是區分大小寫的

          11.equalto: 驗證等于指定另外一個的屬性值

          12.pattern:驗證比對指定的模式,模式可以是正規表達式,也可以是内置的模式名稱

                      内置模式名稱:

                          number:比對任意十進制的數字

                          digits:比對任意數字序列

                          email:比對合法的郵件位址

                           url:比對任意合法的url

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。

轉載:http://www.cnblogs.com/greenteaone/p/4322980.html