jQuery Validate驗證規則實質

admin發表於2019-01-14

本章節介紹一下驗證規則的實質是什麼,先看一個程式碼片段:

[JavaScript] 純文字檢視 複製程式碼
rules: {
  pw: {
    required: true,
    rangelength: [5, 15]
  }
}

在js中為指定表單元素應用驗證規則。

[HTML] 純文字檢視 複製程式碼
<input type="password" name="pw" required rangelength="[5,15]"/>

在面是在表單元素中直接為其應用驗證規範。

更多規則的使用方式介紹參閱jQuery Validate驗證規則的使用一章節。

其實每一個規則對應著Validate外掛的一個方法,通過下面幾種方式獲取規則和後面的引數:

[JavaScript] 純文字檢視 複製程式碼
$.validator.classRules( element )
$.validator.attributeRules( element )
$.validator.dataRules( element )
$.validator.staticRules( element )

以rangelength規則為例,它的原始碼如下:

[JavaScript] 純文字檢視 複製程式碼
rangelength: function( value, element, param ) {
  var length = $.isArray( value ) ? value.length : this.getLength( value, element );
  return this.optional( element ) || ( length >= param[ 0 ] && length <= param[ 1 ] );
}

引數解析:

(1).value:當前表單元素的value值。

(2).element:當前表單元素物件。

(3).param:給規則傳遞的引數,例如[5, 15]。

如果是對於一些格式的驗證,比如郵箱格式,url格式,那就沒有必要傳遞param引數,其實傳遞布林值true,就是沒有傳遞這個引數,看如下程式碼片段:

[JavaScript] 純文字檢視 複製程式碼
email: {
  required: true,
  email: true
}

相關文章