jQuery formValidator表單驗證外掛程式
升級記錄
2008-07-22 14:47
bug描述:ajaxValidator函數在提交後發生錯誤,停留在本頁面後,再次觸發校正會讓提示內容一直處於onload狀態。
這個bug已經修複,請重新下載。
2008/7/17 14:12:00 jQuery formValidator 3.1ver
1、為inputValidator增加empty屬性。用於設定控制項文本值是否允許兩邊為空白。具體請看demo1裡的密碼的校正代碼。
該屬性是個對象,預設值{leftempty:true,rightempty:true,emptyerror:null}
leftempty:表示左邊是否允許為空白
rightempty:表示右邊是否允許為空白
emptyerror:出現該錯誤的時候的提示,如果為null,則利用onerror屬性來提示錯誤。
註:只能在type:"size"的時候使用,即比較長度的時候。
2、修改自動構建提示層的文法。為formValidator函數增加relativeid屬性。
relativeid:表示提示層相對定位的控制項ID,如果為空白,則用當前校正控制項的ID。
tipid:表示自動建立的提示層的ID,如果為空白,則用當前校正控制項的ID+"Tip"來命名。
3、修正ajaxValidator函數裡beforesend屬性的bug。代碼忘記傳遞它的唯一參數。
4、修正ajaxValidator函數在後台無法擷取中文的bug。
5、更新了升級記錄、使用者手冊、增加了2個提問。
更多的升級記錄,請點擊這裡
1、現場示範
http://www.yhuan.com/formvalidator/demo1.htm
2、jQuery pageValidator外掛程式主要功能
支援所有類型用戶端控制項的校正
支援jQuery所有的選取器文法,只要控制項有唯一ID和type屬性
支援函數和Regex的擴充。提供擴充庫formValidatorReg.js,你可以自由的添加、修改裡面的內容。
支援2種校正模式。第一種:文字提示(showword模式);第二種:快顯視窗提示(showalert模式)
支援多個校正組。如果一個頁面有多個提交按鈕,分別做不同得提交,提交前要做不同的校正,所以你得用到校正組的功能。
支援4種狀態的資訊提示功能,可以靈活的控制4種狀態是否顯示。第一種:剛開啟網頁的時候進行提示;第二種:獲得焦點的時候進行提示;第三種:失去焦點時,校正成功時候的提示;第四種:失去焦點時,校正失敗的錯誤提示。
支援自動構建提示層。可以進行精確的定位。
支援自訂錯誤提示資訊。
支援控制項的字元長度、值範圍、選擇個數的控制。值範圍支援數值型和字元型;選擇的個數支援radio/checkbox/select三種控制項
支援2個控制項值的比較。目前可以比較字串和數值型。
支援伺服器端校正。
支援輸入格式的校正。
3、jQuery formValidator外掛程式 API協助文檔
協助文檔請點擊這裡
4、下載API協助、源碼、樣本
http://files.cnblogs.com/wzmaodong/formValidator3.1.rar
http://files.cnblogs.com/wzmaodong/formValidator2.4.rar
校正代碼升級器
5、範例程式碼
<script type="text/javascript">
$(document).ready(function(){
$.formValidator.initConfig({onError:function(){alert("校正沒有通過,具體錯誤請看錯誤提示")}});
$("#test1").formValidator({onshow:"請輸入使用者名稱",onfocus:"使用者名稱至少6個字元,最多10個字元",oncorrect:"恭喜你,你輸對了"}).InputValidator({min:6,max:10,onerror:"你輸入的使用者名稱非法,請確認"});
$("#test2").formValidator({onshow:"請選擇你的興趣愛好(至少選擇3個,最多選擇5個)",onfocus:"你至少選擇3個,最多選擇5個",oncorrect:"恭喜你,你選對了"}).InputValidator({min:3,max:5,onerror:"你選的個數不對(至少選擇3個,最多選擇5個)"});
$("#test3").formValidator({onshow:"請選擇你的興趣愛好(至少選一個)",onfocus:"你至少選擇1個",oncorrect:"恭喜你,你選對了"}).InputValidator({min:1,onerror:"你選的個數不對"});
$("#xueli").formValidator({onshow:"請選擇你的學曆",onfocus:"學曆必須選擇",oncorrect:"謝謝你的配合"}).SelectValidator({onerror: "你是不是忘記選擇學曆了!"});
$("#password1").formValidator({onshow:"請輸入密碼",onfocus:"兩次密碼必須一致哦",oncorrect:"密碼一致"}).InputValidator({min:1,onerror:"密碼不可為空,請確認"}).CompareValidator({desID:"password2",operateor:"=",onerror:"2次密碼不一致,請確認"});
$("#nl").formValidator({onshow:"請輸入的年齡(1-99歲之間)",onfocus:"只能輸入1-99之間的數字哦",oncorrect:"恭喜你,你輸對了"}).InputValidator({min:1,max:99,type:"value",onerror:"年齡必須在1-99之間,請確認"});
$("#aiguo").formValidator({onshow:"愛國的人一定要選哦",onfocus:"你得認真思考哦",oncorrect:"不知道你愛不愛,反正你是選了"}).InputValidator({min:1,max:1,onerror:"難道你不愛國?你給我選!!!!"});
$("#shouji").formValidator({empty:true,onshow:"請輸入你的手機號碼,可以為空白哦",onfocus:"你要是輸入了,必須輸入正確",oncorrect:"謝謝你的合作",onempty:"你真的不想留手機號碼啊?"}).InputValidator({min:11,max:11,onerror:"手機號碼必須是11位的,請確認"}).RegexValidator({regexp:"^[1][0-9]{10}$",onerror:"你輸入的手機格式不正確"});
$("#lxdh").formValidator({empty:true,onshow:"請輸入你的聯絡電話,可以為空白哦",onfocus:"你要是輸入了,必須輸入正確,格式例如:0577-88069620",oncorrect:"謝謝你的合作",onempty:"你真的不想留聯絡電話了嗎?"}).RegexValidator({regexp:"^[[0-9]{3}-|/[0-9]{4}-]?(/[0-9]{8}|[0-9]{7})?$",onerror:"你輸入的聯絡電話格式不正確"});
$("#ms").formValidator({onshow:"請輸入你的描述",onfocus:"描述至少要輸入10個漢字或20個字元",oncorrect:"恭喜你,你輸對了"}).InputValidator({min:20,onerror:"你輸入的描述長度不正確,請確認"});
});
</script>
6、特別說明
如果你在使用過程中碰到什麼問題請給我留言,發現bug請不要自行修改,也請留言,達到完善外掛程式的目的,真正服務每個程式開發人員 .
請保留外掛程式的著作權申明,謝謝
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/pengchua/archive/2008/10/29/3166198.aspx
$("#password1").formValidator({onshow:"請輸入密碼",onfocus:"密碼不可為空且長度大於4",oncorrect:"密碼合法"}).inputValidator({min:4,empty:{leftempty:false,rightempty:false,emptyerror:"密碼兩邊不能有空符號"},onerror:"密碼不可為空,請確認"});
$("#password2").formValidator({onshow:"請輸入重複密碼",onfocus:"兩次密碼必須一致哦",oncorrect:"密碼一致"}).inputValidator({min:4,empty:{leftempty:false,rightempty:false,emptyerror:"重複密碼兩邊不能有空符號"},onerror:"重複密碼不可為空,請確認"}).compareValidator({desid:"password1",operateor:"=",onerror:"2次密碼不一致,請確認"});
$("#ddlType").formValidator({onshow:"請選擇帳號類型",onfocus:"帳號必須選擇",oncorrect:"謝謝你的配合"}).inputValidator({min:1,onerror: "你是不是忘記選擇帳號類型了!"}).defaultPassed();
$(document).ready(function(){
//$.formValidator.initConfig({onerror:function(){alert("校正沒有通過,具體錯誤請看錯誤提示")}});
$.formValidator.initConfig({formid:"form1",onerror:function(msg){alert(msg)},onsuccess:function(){alert('ddd');return false;}});
$("#test1").formValidator({onshow:"請輸入使用者名稱,只有輸入/"maodong/"才是對的",onfocus:"使用者名稱至少6個字元,最多10個字元",oncorrect:"該使用者名稱可以註冊"}).inputValidator({min:6,max:10,onerror:"你輸入的使用者名稱非法,請確認"}).regexValidator({regexp:"username",datatype:"enum",onerror:"使用者名稱格式不正確"})
.ajaxValidator({
type : "get",
url : "Default.aspx",
datatype : "json",
success : function(data){
if( data == "1" )
{
return true;
}
else
{
return false;
}
},
buttons: $("#button"),
error: function(){alert("伺服器沒有返回資料,可能伺服器忙,請重試");},
onerror : "該使用者名稱不可用,請更換使用者名稱",
onwait : "正在對使用者名稱進行合法性校正,請稍候..."
});
$("#password1").formValidator({onshow:"請輸入密碼",onfocus:"密碼不可為空",oncorrect:"密碼合法"}).inputValidator({min:1,empty:{leftempty:false,rightempty:false,emptyerror:"密碼兩邊不能有空符號"},onerror:"密碼不可為空,請確認"});
$("#password2").formValidator({onshow:"請輸入重複密碼",onfocus:"兩次密碼必須一致哦",oncorrect:"密碼一致"}).inputValidator({min:1,empty:{leftempty:false,rightempty:false,emptyerror:"重複密碼兩邊不能有空符號"},onerror:"重複密碼不可為空,請確認"}).compareValidator({desid:"password1",operateor:"=",onerror:"2次密碼不一致,請確認"});
$(":radio[name='sex']").formValidator({tipid:"sexTip",onshow:"請選擇你的性別",onfocus:"沒有第三種性別了,你選一個吧",oncorrect:"輸入正確",defaultvalue:["1"]}).inputValidator({min:1,max:1,onerror:"性別忘記選了,請確認"});//.defaultPassed();
$("#nl").formValidator({onshow:"請輸入的年齡(1-99歲之間)",onfocus:"只能輸入1-99之間的數字哦",oncorrect:"恭喜你,你輸對了"}).inputValidator({min:1,max:99,type:"value",onerrormin:"你輸入的值必須大於等於1",onerror:"年齡必須在1-99之間,請確認(輸入正確後才能離開焦點)"});//.defaultPassed();
$("#csny").focus(function(){WdatePicker({skin:'whyGreen',oncleared:function(){$(this).blur();},onpicked:function(){$(this).blur();}})}).formValidator({onshow:"請輸入的出生日期",onfocus:"請輸入的出生日期,不能全部是0哦",oncorrect:"你輸入的日期合法"}).inputValidator({min:"1900-01-01",max:"2000-01-01",type:"date",onerror:"日期必須在/"1900-01-01/"和/"2000-01-01/"之間"});//.defaultPassed();
$("#sfzh").formValidator({onshow:"請輸入15或18位的身份證",onfocus:"輸入15或18位的身份證",oncorrect:"輸入正確"}).functionValidator({fun:isCardID});
$("#email").formValidator({onshow:"請輸入郵箱",onfocus:"郵箱6-100個字元,輸入正確了才能離開焦點",oncorrect:"恭喜你,你輸對了",defaultvalue:"@",forcevalid:true}).inputValidator({min:6,max:100,onerror:"你輸入的郵箱長度非法,請確認"}).regexValidator({regexp:"^([//w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([//w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$",onerror:"你輸入的郵箱格式不正確"});
$("#xueli").formValidator({onshow:"請選擇你的學曆",onfocus:"學曆必須選擇",oncorrect:"謝謝你的配合",defaultvalue:"a"}).inputValidator({min:1,onerror: "你是不是忘記選擇學曆了!"}).defaultPassed();
$("#ewjy").formValidator({onshow:"無論你輸入什麼都會提示你額外校正出錯",onfocus:"如果你輸入/"貓冬/",額外校正就會成功",oncorrect:"額外校正成功"}).inputValidator({min:1,onerror:"這裡至少要一個字元,請確認"}).functionValidator({
fun:function(val,elem){
if(val=="貓冬"){
return true;
}else{
return "額外校正失敗,想額外校正通過,請輸入/"貓冬/""
}
}
});
$("#Tel_country").formValidator({tipid:"teltip",onshow:"請輸入國家區號",onfocus:"國家區號2位元字",oncorrect:"恭喜你,你輸對了",defaultvalue:"86"}).regexValidator({regexp:"^//d{2}$",onerror:"國家區號不正確"});
$("#Tel_area").formValidator({tipid:"teltip",onshow:"請輸入地區區號",onfocus:"地區區號3位或4位元字",oncorrect:"恭喜你,你輸對了"}).regexValidator({regexp:"^//d{3,4}$",onerror:"地區區號不正確"});
$("#Tel_number").formValidator({tipid:"teltip",onshow:"請輸入電話號碼",onfocus:"電話號碼7到8位元字",oncorrect:"恭喜你,你輸對了"}).regexValidator({regexp:"^//d{7,8}$",onerror:"電話號碼不正確"});
$("#Tel_ext").formValidator({tipid:"teltip",onshow:"請輸入分機號碼",onfocus:"分機號碼1到5位元字",oncorrect:"恭喜你,你輸對了"}).regexValidator({regexp:"^//d{1,5}$",onerror:"分機號碼不正確"});
$(":checkbox[name='checkbox1']").formValidator({tipid:"test3Tip",onshow:"請選擇你的興趣愛好(至少選一個)",onfocus:"你至少選擇1個",oncorrect:"恭喜你,你選對了"}).inputValidator({min:1,onerror:"你選的個數不對"});
$(":checkbox[name='checkbox8']").formValidator({tipid:"test2Tip",onshow:"請選擇你的興趣愛好(至少選擇2個,最多選擇3個)",onfocus:"你至少選擇2個,最多選擇3個",oncorrect:"恭喜你,你選對了",defaultvalue:["7","8"]}).inputValidator({min:2,max:3,onerror:"你選的個數不對(至少選擇2個,最多選擇3個)"});
$(":radio[name='radio']").formValidator({tipid:"aiguoTip",onshow:"愛國的人一定要選哦",onfocus:"你得認真思考哦",oncorrect:"不知道你愛不愛,反正你是選了",defaultvalue:["4"]}).inputValidator({min:1,max:1,onerror:"難道你不愛國?你給我選!!!!"}).defaultPassed();
$("#shouji").formValidator({empty:true,onshow:"請輸入你的手機號碼,可以為空白哦",onfocus:"你要是輸入了,必須輸入正確",oncorrect:"謝謝你的合作",onempty:"你真的不想留手機號碼啊?"}).inputValidator({min:11,max:11,onerror:"手機號碼必須是11位的,請確認"}).regexValidator({regexp:"mobile",datatype:"enum",onerror:"你輸入的手機號碼格式不正確"});;
$("#lxdh").formValidator({empty:true,onshow:"請輸入你的聯絡電話,可以為空白哦",onfocus:"格式例如:0577-88888888",oncorrect:"謝謝你的合作",onempty:"你真的不想留聯絡電話了嗎?"}).regexValidator({regexp:"^[[0-9]{3}-|/[0-9]{4}-]?([0-9]{8}|[0-9]{7})?$",onerror:"你輸入的聯絡電話格式不正確"});
$("#selectmore").formValidator({onshow:"按住CTRL可以多選",onfocus:"按住CTRL可以多選,至少選擇2個",oncorrect:"謝謝你的合作",defaultvalue:["0","1","2"]}).inputValidator({min:2,onerror:"至少選擇2個"});
$("#ms").formValidator({onshow:"請輸入你的描述",onfocus:"描述至少要輸入10個漢字或20個字元",oncorrect:"恭喜你,你輸對了",defaultvalue:"這傢伙很懶,什麼都沒有留下。"}).inputValidator({min:20,onerror:"你輸入的描述長度不正確,請確認"});
});
function test(obj)
{
if(obj.value=="不校正身份證")
{
$("#sfzh").attr("disabled",true).unFormValidator(true);
obj.value = "校正身份證";
}
else
{
$("#sfzh").attr("disabled",false).unFormValidator(false);
obj.value = "不校正身份證";
}
}
function test1(obj)
{
if(obj.value=="全形字元當做1個長度")
{
$.formValidator.getInitConfig("1").wideword = false;
obj.value = "全形字元當做2個長度";
}
else
{
$.formValidator.getInitConfig("1").wideword = true;
obj.value = "全形字元當做1個長度";
}
}
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/zx_values/archive/2010/04/28/5532339.aspx