使用metadata方式
這個需要使用jquery.metadata.js插件纔可工作,通過在表單項中定義特殊的屬性來指定驗證規則
但是我發現最新的jquery.validate 1.11竟然沒有內置metadata的支持,故需要對其進行一些改造
搜索jquery.validate.js文件中的$.validator.classRules(element),並在其前加入以下行:
$.validator.metadataRules(element),
再搜索 staticRules:, 在其前面加入以下代碼,增加metadata的支持:
metadataRules: function(element) { if (!$.metadata) return {}; var meta = $.data(element.form, ’validator’).settings.meta; return meta ? $(element).metadata()[meta] : $(element).metadata(); }, |
到這裏,就改造完成了,要使用metadata,頁面中使用以下方式(省略了其它代碼):
<script src=”lib/jquery.js” type=”text/javascript”></script>
<script src=”lib/jquery.metadata.js” type=”text/javascript”></script> <script src=”lib/jquery.validate.js” type=”text/javascript”></script>
<form> <input name=”user” class=”{required:true,minlength:3}” /> </form> |
但是默認的class是用來定義css樣式類名的,在這裏作爲作爲驗證規則使用,會造給樣式維護帶來太多不便的, 有兩種方式解決這個問題:
A. 直接修改 jquery.metadata.js, type修改爲attr, name修改爲validate,表示從表單項的validate屬性取得驗證規則
B. 在頁頭中調用 $.metadata.setType(‘attr’,'validate’), 表示從表單項的validate屬性取得驗證規則