jQuery的validate驗證功能十分強大,但是能夠自訂驗證方法更具有靈活性,所以我只是把自訂的說明一下。
添加自訂方法是使用jquery的jQuery.validator.addMethod方法,這個方法的完整定義如下: [javascript] view plain copy jQuery.validator.addMethod("myValidateName", function(value, element, param) { //myValidateName是自己定義的驗證方法值 //value是指當前校正域的值 //element是指當前檢驗的域 //param是指在rules中設定的參數 },$.validator.format("xxx"));
定義完之後,就可以通過在頁面中聲明和調用了。調用方法如下: [javascript] view plain copy var validator = $("#formName").validate({//formName是form的名字 submitHandler: function(form) { //提交時候調用的方法 formSubmit();//調用成功後的處理函數 } , rules: { inputName1: "myValidateName",//如果只用一個驗證方式的話,需要用引號標記上,而且這種方式是認為強制執行的,也就是一定要驗證的 inputName2: {//如果想使用多種驗證方式,就需要使用花括弧標記上,且逗號隔開,記住:最後一項不要有逗號 myValidateName1: true,//這種是強制執行的驗證 myValidateName2: function(){if(某條件滿足){return true;}else{return false;}},//這種根據條件判斷要不要驗證,更佳的靈活,用在多條件輸入的時候極為方便 myValidateName3: [//使用方括弧的是對於普通驗證的更佳進階方法,這種方法也十分好用 function(){if(某條件滿足){return true;}else{return false;}},//同上,驗證條件判斷,條件不滿足,本驗證就不生效 rangeValue1,//閾值控制值,這個值可以有任意多個,就看你的驗證方法中是怎樣聲明的了 rangeValue2//閾值控制值 ] } }, messages: {//驗證到不合法的值的提示資訊,如果不加這部分,就會執行你聲明函數的時候的預設提示:“xxx”,就是在$.validator.format("xxx"));中聲明的那個提示 inputName1: "AAA",//這種寫法是將所有驗證不通過的全部提示AAA inputName2: {//這種就是更佳詳細的提示,當然也可以使用上面的這種方式,無論myValidateName1,2還是3,只要有不通過的,都會提示同一條資訊。 myValidateName1:"BBB",//但是如果詳細些的提示,就需要用花括弧標記上,並且內部用逗號隔開,且最後一個後面不能有逗號,就相當於使用數組的方式 myValidateName2:"CCC", myValidateName3:"DDD"//這裡後面不能有逗號了,不然在有些瀏覽器中會報錯 } }, errorPlacement: function(error, element) {//這裡定義的是出錯或者叫提示資訊出現的位置 error.insertAfter(element.parent().find('label:first'));//這句話的意思就是說,在驗證不通過的那個標籤上面的父節點開始向下找到第一個lable標籤的後面,進行插入 }, //就是這樣,如下面: