最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于jQuery的前端數(shù)據(jù)通用驗證庫

 更新時間:2011年08月08日 23:12:31   作者:  
做了這么長時間的開發(fā),一直因為驗證的問題相當?shù)目鄲?,不斷的寫很多重復的代碼,對想偷懶的我來說是相當痛苦的。
于是在之前的開發(fā)之中慢慢開始總結,也寫了一些零散的方法想要比較簡單的,寫更少的代碼來完成更多的驗證。之前采用的思路是傳遞參數(shù),將要驗證的控件的ID傳進去,若是要驗證數(shù)據(jù)格式再傳入相應的正則表達式進去。項目結束之后,再對整個項目做總結的時候發(fā)現(xiàn),這種寫法也并沒有節(jié)省多少代碼量,而且很多地方因為同學反應說我寫的那個庫并不是很好用,雖然有說明,但他們也還是不能很好的理解,不能很快就上手,而且應該還是有不少BUG,所以很多地方他們還是寧愿用那種對每個控件去一一驗證的方式,一個JS文件中光驗證的部分就得兩三百行的代碼,而且都比較懶,對于注釋是能少寫一句是一句,以致于出了問題之后維護起來也很麻煩,JS調試也還沒有一個很方便的工具。
最近也是在外出差,空閑的時候我就在想,能不能在之前的基礎上封裝更多一點,然后調用更方便呢,最好是調用的時候不要再寫JS代碼最好。想起jQuery強大的選擇器,以及之前做驗證的時候或者需要從頁面取值的時候經(jīng)常給頁面元素加上了一些自定義的屬性。于是乎,想做驗證的時候只需要給元素加上幾個自定義的屬性,調用JS代碼就行,這樣應該是最簡單的了吧。
這個簡易的驗證庫,應該能完成90%的基本驗證,包括失去焦點時的驗證,以及點擊提交按鈕時的驗證。后端的那我就無能為辦了,只能是誰用就誰自個兒去寫了:)。
先上一段調用的代碼吧,JS代碼說少也不少了,就不直接貼出來了,文章后面上附件,還包括一個我之前自己寫的一個仿人人網(wǎng)的插件的JS文件。
復制代碼 代碼如下:

<script src="Js/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="Js/ks.ext.msgbox.js" type="text/javascript"></script>
<script src="Js/validata.js" type="text/javascript"></script>
<form name="form1" id="form1" action="#" method="post">
郵&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;箱:<input type="text" id="email" name="email"
validata="email" errormsg="郵箱格式不正確" emptyerrormsg="郵箱不能為空" empty="false" /><br />
手&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;機:<input type="text" name="phone" validata="phone"
errormsg="手機格式不正確" emptyerrormsg="手機不能為空" empty="true" /><br />
電&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;話:<input type="text" name="tel" validata="tel"
errormsg="電話格式不正確" emptyerrormsg="電話不能為空" empty="true" /><br />
身&nbsp;&nbsp;份&nbsp;證:<input type="text" name="idcard" validata="idcard" errormsg="身份證格式不正確"
emptyerrormsg="身份證不能為空" empty="false" /><br />
密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;碼:<input type="password" name="pwd" validata="empty"
empty="false" emptyerrormsg="密碼不能為空" /><br />
確認密碼:<input type="password" name="pwd1" validata="password2" errormsg="確認密碼不能為空"
diffmsg="兩次密碼輸入不一致" /><br />
<input type="submit" id="submit1" value="Submit" />
</form>

比如驗證郵箱:
有時候郵箱我們是允許為空的,但是一旦輸入了郵箱就要求郵箱是合法的。如果允許為空就給empty賦值為true,那么驗證庫將不對其做非空驗證。若為false或者empty屬性不加默認就為是不允許為空的。 不允許為空得加上一個emptyErrorMsg的屬性,用來顯示為空時的錯誤信息,若這個屬性缺少或者值為空那么顯示的就是一個紅色"*",若不為空就顯示這個屬性的值。然后就是對格式的驗證,是要對郵箱驗證,validata的值就是email,若不合法時就顯示另外一個自定義屬性errorMsg的值,errorMsg若缺少或者為空顯示錯誤信息也為紅色"*".
validata的值還是不能完全自定義的,已經(jīng)在JS中自定好了。就是根據(jù)validata的值來返回不同的正則表達式。方法如下,然后可選的validata的值就是下列方法的regName的值。用戶若要據(jù)展直接再加上其他表達式就可以了。
復制代碼 代碼如下:

//根據(jù)不同的驗證內容,返回相應的正則表達式
function returnRegString(regName) {
if (regName == "email") {
return "^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$"; //郵箱
} else if (regName == "tel") {
return "^(86)?(-)?(0[0-9]{2,3})?(-)?([0-9]{7,8})(-)?([0-9]{3,5})?$"; //電話
} else if (regName == "phone") {
return "^(13[0-9]|15[0-9]|18[0-9])([0-9]{8})$"; //手機
} else if (regName == "postcode") {
return "^([0-9]{6})$"; //郵編
} else if (regName == "number") {
return "^(0|([1-9]+[0-9]*))(.[0-9]+)?$"; //數(shù)字
} else if (regName == "decimal") {
return "^[0-9]+([.][0-9]+)?$"; //浮點
} else if (regName == "money") {
return "^([0-9])$"; //貨幣
} else if (regName == "website") { //網(wǎng)址
return "(http://|https://){0,1}[\w\/\.\?\&\=]+";
} else if (regName == "fax") { //傳真
return "^[+]{0,1}([0-9]){1,3}[ ]?([-]?(([0-9])|[ ]){1,12})+$";
} else if (regName == "int") { //整數(shù)
return "^(-){0,1}\d+$";
} else if (regName == "pInt") { //正整數(shù)
return "^\d+$";
} else if (regName == "nInt") { //負整數(shù)
return "^-\d+$";
} else if (regName == "nandl") { //數(shù)字與字母
return "[a-zA-Z0-9]";
} else if (regName == "chinese") { //是否含有中文字符
return "[\u4e00-\u9fa5]";
}
}

廢話不多說了,該驗證庫也還沒有很完整的測試,各位大牛們若是有興趣試用一下,發(fā)現(xiàn)什么問題或者其他更好的改進方法一定請告訴小弟。雖然肯定有現(xiàn)成的而且比較成熟的JS驗證庫了,但是我想自己寫一個出來。再來一張截圖吧,點擊按鈕時若未通過驗證則彈出層提示哪個地方未通過驗證,彈出層就是我之前自己寫的仿人人網(wǎng)效果的彈出層效果。

相關文章

  • Jquery 焦點圖 用于圖片展示效果代碼

    Jquery 焦點圖 用于圖片展示效果代碼

    今天因網(wǎng)站需要寫了個圖片展示效果,其中用到了Jquery的data函數(shù),剛學就被我用這了,昨天看時還覺得無甚用處,因為可以人為地給一個節(jié)點加屬性嘛,不過省卻了幾句代碼而已。
    2010-05-05
  • jQuery+ajax實現(xiàn)動態(tài)執(zhí)行腳本的方法

    jQuery+ajax實現(xiàn)動態(tài)執(zhí)行腳本的方法

    這篇文章主要介紹了jQuery+ajax實現(xiàn)動態(tài)執(zhí)行腳本的方法,分析了jQuery+Ajax實現(xiàn)腳本的動態(tài)加載與執(zhí)行的技巧,需要的朋友可以參考下
    2015-01-01
  • jquery中append()與appendto()用法分析

    jquery中append()與appendto()用法分析

    這篇文章主要介紹了jquery中append()與appendto()用法分析,以實例的形式分析了jquery中append()與appendto()的具體語法與詳細用法,需要的朋友可以參考下
    2014-11-11
  • 基于LayUI實現(xiàn)前端分頁功能的方法

    基于LayUI實現(xiàn)前端分頁功能的方法

    下面小編就為大家?guī)硪黄贚ayUI實現(xiàn)前端分頁功能的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • jqNext能替代jQuery嗎

    jqNext能替代jQuery嗎

    隨著前端的發(fā)展和瀏覽器的升級,jQuery也開始有些缺陷,其中最主要的就是在處理大量數(shù)據(jù)時會出現(xiàn)性能問題,而為了解決這個問題,我們可以使用jqNext,這是jQuery的一個輕量級替代品,盡管它并不能完全取代jQuery,但在一些場景下使用起來是十分便利的
    2023-09-09
  • jquery實現(xiàn)非疊加式的搜索框提示效果

    jquery實現(xiàn)非疊加式的搜索框提示效果

    用JQUERY疊加兩個INPUT框來實現(xiàn)登陸中需要輸入的用戶名、密碼來實現(xiàn)提示與用戶的輸出,使用jquery在一個INPUT框中即可實現(xiàn)
    2014-01-01
  • JQuery給網(wǎng)頁更換皮膚的方法

    JQuery給網(wǎng)頁更換皮膚的方法

    這篇文章主要介紹了JQuery給網(wǎng)頁更換皮膚的方法,用到了jQuery頁面元素獲取、樣式及鏈式操作的相關技巧,需要的朋友可以參考下
    2015-05-05
  • Jquery時間驗證和轉換工具小例子

    Jquery時間驗證和轉換工具小例子

    這篇文章介紹了Jquery時間驗證和轉換工具小例子,有需要的朋友可以參考一下
    2013-07-07
  • 簡單講解jQuery中的子元素過濾選擇器

    簡單講解jQuery中的子元素過濾選擇器

    這篇文章主要介紹了jQuery中的子元素過濾選擇器,列舉了一些操作DOM時獲取父元素的一些方法,需要的朋友可以參考下
    2016-04-04
  • 漢化英文版的Dreamweaver CS5并自動提示jquery

    漢化英文版的Dreamweaver CS5并自動提示jquery

    如果從Adobe Dreamweaver CS5的官網(wǎng)上下載了一個Adobe Dreamweaver CS5,那么Adobe Dreamweaver CS5默認你是英文版的,我們中國人還是比較習慣看漢字的。
    2010-11-11

最新評論

大悟县| 兴仁县| 泸州市| 从江县| 双牌县| 内乡县| 山东省| 黑龙江省| 武胜县| 遵义市| 云安县| 三穗县| 茶陵县| 定襄县| 高台县| 阿勒泰市| 通州区| 安岳县| 龙泉市| 贵南县| 商都县| 安达市| 茂名市| 华安县| 乐业县| 恩施市| 阿克苏市| 府谷县| 临高县| 霞浦县| 江北区| 岳阳县| 砚山县| 寻甸| 扬中市| 浠水县| 丘北县| 疏勒县| 长沙市| 宜州市| 怀来县|