日本xxxx18视频在线观看-日本xxxx1819-日本xxxwww在线观看-日本xxx-日本xx-日本www在线视频

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

Javascript自定義表單驗(yàn)證規(guī)則

admin
2012年3月12日 13:59 本文熱度 3585



  1. 1.自定義的表單驗(yàn)證屬性:datatype,scriptPrompt,nomorethan,notnull;   


  • 這四個(gè)屬性并非html元素所有,自定義的規(guī)則屬性,簡(jiǎn)單介紹下:   

  • datatype:要驗(yàn)證的數(shù)據(jù)類型;   

  • scriptPrompt:驗(yàn)證不通過后的提示語(yǔ);   

  • nomorethan:不超過多少個(gè)字符;   

  • notnull:是否是必填項(xiàng)("true" or "yes" 表示必填);   

  •   

  • 2.自定義驗(yàn)證規(guī)則checkForm(),用于表單提交的onsubmit="return checkForm();"屬性中,當(dāng)然也可以在js中驗(yàn)證;   

  • 主函數(shù):   

  • function checkForm() {   

  • var ele = document.forms[0].elements;   

  • for (i = 0; i < ele.length; i++) {   

  •    if (ele[i].type == 'text' || ele[i].type == 'file'|| ele[i].type == 'textarea' || ele[i].type == 'password') {   

  •     if (isNull(ele[i]) == false) {   

  •      alert(ele[i].scriptPrompt + '不能為空!');   

  •      ele[i].select()   

  •      return false;   

  •     }   

  •     if (checkData(ele[i]) == false) {   

  •      ele[i].select()   

  •      return false;   

  •     }   

  •    }   

  • }   

  • return true;   

  • }   

  •   

  • 3.主函數(shù)checkForm()中又有新函數(shù):isNull(),checkData();   

  • isNull()函數(shù):   

  • function isNull(o) {   

  • if (o.notnull) {   

  •    if ((o.notnull == "true" || o.notnull == "yes") && trim(o.value) == '') {   

  •     return false;   

  •    }   

  • }   

  • return true;   

  • }   

  • 注:如果表單中,設(shè)置了notnull屬性,就會(huì)接受該驗(yàn)證;   

  •   

  • checkData()函數(shù):該函數(shù)是任何自定義的數(shù)據(jù)類型,接受該驗(yàn)證:   

  • function checkData(o) {   

  • var datatype = o.datatype;   

  • if (o.value.indexOf('\'') != -1) {   

  •    alert(o.scriptPrompt + "請(qǐng)不要輸入非法字符!\" \' \"");   

  •    return false;   

  • }   

  • if (datatype == "number") {   

  •    if (checkNumber(o) == false) {   

  •     alert(o.scriptPrompt + "請(qǐng)輸入正確的數(shù)字!");   

  •     o.select();   

  •     return false;   

  •    }   

  • }   

  • if (datatype == "int") {   

  •    if (isNumber(o.value) == false) {   

  •     alert(o.scriptPrompt + "請(qǐng)輸入正確的正整數(shù)!");   

  •     o.select();   

  •     return false;   

  •    }   

  •    if (parseInt(o.value) < parseInt(o.min) || parseInt(o.value) > parseInt(o.max)) {   

  •     alert(o.scriptPrompt + "應(yīng)該在" + o.min + "--" + o.max + "之間!");   

  •     o.select();   

  •     return false;   

  •    }   

  • }   

  • if (datatype == "date") {   

  •    if (!isDate(o.value)) {   

  •     alert(o.scriptPrompt + "請(qǐng)輸入正確的日期!");   

  •     o.select();   

  •     return false;   

  •    }   

  • }   

  • if (datatype == "zh") {   

  •    if (!checkZH(o.value)) {   

  •     alert(o.scriptPrompt + "只允許輸入漢字!");   

  •     o.select();   

  •     return false;   

  •    }else{   

  •     if (o.nomorethan != "") {   

  •      if (getByteLen(o.value) > o.nomorethan) {   

  •       alert(o.scriptPrompt + "最大長(zhǎng)度" + (o.nomorethan) + ",已經(jīng)輸入了" + getByteLen(o.value) + "(中文長(zhǎng)度為2)!");   

  •       o.select();   

  •       return false;   

  •      }   

  •     }   

  •    }   

  • }   

  • if (datatype == "EString") {   

  •    if (getByteLen(o.value) > o.value.length) {   

  •     alert(o.scriptPrompt + "該輸入框不能有中文字符!");   

  •     o.select();   

  •     return false;   

  •    }   

  • }   

  • if (datatype == "String") {   

  •    if (o.nomorethan != "") {   

  •     if (getByteLen(o.value) > o.nomorethan) {   

  •      alert(o.scriptPrompt + "最大長(zhǎng)度" + (o.nomorethan) + ",已經(jīng)輸入了"+ getByteLen(o.value) + "(中文長(zhǎng)度為2)!");   

  •      o.select();   

  •      return false;   

  •     }   

  •    }   

  • }   

  • if (datatype == "Email") {   

  •    if (o.value != "") {   

  •     return checkEmail(o.value);   

  •    }   

  • }   

  • if (datatype == "Phone") {// 座機(jī)   

  •    if (o.value != "") {   

  •     return checkPhone(o.value, o.scriptPrompt);   

  •    }   

  • }   

  • if (datatype == "MobilePhone") {// 手機(jī)   

  •    if (o.value != "") {   

  •     return checkMobilePhone(o.value);   

  •    }   

  • }   

  • if (datatype == "Post") {//郵編   

  •    if (o.value != "") {   

  •     return checkPost(o);   

  •    }   

  • }   

  • return true;   

  • }   

  • 注:該函數(shù)內(nèi)容很多,每個(gè)if條件都有一次驗(yàn)證,驗(yàn)證規(guī)則又是單獨(dú)的js函數(shù),完全自定義:   

  • 列出一部分:   

  • /*  

  • * 用途:檢查輸入的日期是否符合 yyyyMMdd 輸入: value:字符串 返回: 如果通過驗(yàn)證返回true,否則返回false  

  • */  

  • function isDate(value) {   

  • if (value.length == 0)   

  •    return true;   

  • if (value.length != 8 || !isNumber(value))   

  •    return false;   

  • var year = value.substring(04);   

  • if (year > "2100" || year < "1900")   

  •    return false;   

  • var month = value.substring(46);   

  • if (month > "12" || month < "01")   

  •    return false;   

  • var day = value.substring(68);   

  • if (day > getMaxDay(year, month) || day < "01")   

  •    return false;   

  • return true;   

  • }   

  • /*  

  • * 用途:檢查輸入的Email信箱格式是否正確 輸入: strEmail:字符串 返回: 如果通過驗(yàn)證返回true,否則返回false  

  • */  

  • function checkEmail(strEmail) {   

  • var emailReg = /^[A-Za-z0-9]+@([A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;   

  • if (emailReg.test(strEmail)) {   

  •    return true;   

  • else {   

  •    alert("您輸入的Email地址格式不正確!");   

  •    return false;   

  • }   

  • }   

  •   

  • /*  

  • * 用途:檢查輸入的電話號(hào)碼格式是否正確 輸入: strPhone:字符串 返回: 如果通過驗(yàn)證返回true,否則返回false  

  • */  

  • function checkPhone(strPhone, prompt) {   

  • var phoneRegWithArea = /^[0][1-9]{2,3}-[0-9]{5,10}$/;   

  • var phoneRegWithArea1 = /^[0][1-9]{2,3}[0-9]{5,10}$/;   

  • var phoneRegWithArea2 = /^[1][3][1-9]{1}[0-9]{8}$/;   

  • var phoneRegNoArea = /^[1-9]{1}[0-9]{5,8}$/;   

  • var prompt = "請(qǐng)輸入正確的" + prompt + "!"  

  • if (strPhone.length > 9) {   

  •    if (phoneRegWithArea.test(strPhone) || phoneRegWithArea1.test(strPhone)   

  •      || phoneRegWithArea2.test(strPhone)) {   

  •     return true;   

  •    } else {   

  •     alert(prompt);   

  •     return false;   

  •    }   

  • else {   

  •    if (phoneRegNoArea.test(strPhone)) {   

  •     return true;   

  •    } else {   

  •     alert(prompt);   

  •     return false;   

  •    }   

  • }   

  • }   

  • /**  

  • * 驗(yàn)證手機(jī)格式  

  • * @param {} strPhone  

  • * @return {Boolean}  

  • */  

  • function checkMobilePhone(strPhone) {   

  • var pattern = /^[1]\d{10}$/;   

  • var prompt = "您輸入的手機(jī)號(hào)碼格式不正確!"  

  • if (!pattern.exec(strPhone)) {   

  •    alert(prompt);   

  •    return false;   

  • }   

  • }   

  • /**  

  • * 驗(yàn)證只能輸入中文  

  • * @param {} strName  

  • * @return {Boolean}  

  • */  

  • function checkZH(strName) {   

  • var pattern = /^[\u4e00-\u9fa5]*$/;   

  • if (!pattern.exec(strName)) {   

  •    return false;   

  • }   

  • return true;   

  • }   

  •   

  • 4.定義完成之后,每個(gè)需要驗(yàn)證的輸入只要加上上面屬性,表單提交的時(shí)候,就會(huì)先驗(yàn)證:   

  • 如:姓名(必須是中文,且最多10個(gè)字符即五個(gè)漢字):   

  • <input name="name" type="text" scriptPrompt="姓名" notnull="true" datatype="zh" nomorethan="10" />   

  •   

  • 手機(jī)(必須通過"MobilePhone"的驗(yàn)證規(guī)則):   

  • <input name="telMobile" datatype="MobilePhone" scriptPrompt="手機(jī)" nomorethan="20" type="text"/>   

  •   

  • 5.這樣一個(gè)js文件,基本完全可以驗(yàn)證整個(gè)項(xiàng)目中需要驗(yàn)證的地方,而且規(guī)則都是自己定的,擴(kuò)充性很強(qiáng)!

  • 該文章在 2012/3/12 13:59:07 編輯過
    關(guān)鍵字查詢
    相關(guān)文章
    正在查詢...
    點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
    點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
    點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
    點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
    Copyright 2010-2025 ClickSun All Rights Reserved

    主站蜘蛛池模板: 秋霞影视网 | 欧美日韩国产在线人成 | 日本国产一区二区三区 | 91免费精品国自产在线不卡 | 97在线精品视频免费 | 欧洲精品欧美精品 | 日本国产美国日韩欧美mv | 无区码一码二码三码 | 免费国产a | 日本播放器大片免费 | 国产欧美日韩va另类在线播放 | 国产精品自在在线午夜 | 日韩精品大秀视频在线观看 | 精品国产在天天在线观看 | 免费国产高清在线精品一区 | 欧美精品中文字幕亚洲专区 | 国产欧美日韩专区 | 国产精品亚洲欧美大片在线观看 | 日韩一区二区三区射精 | 日韩aⅴ在线观看 | 国语自产精品视频在线播放 | 免费va人成 | 国产资源视频 | 精品国产欧美精品v | 精品国产品香蕉在线观看75 | 2025精品国产自在现线看 | 欧美一区二区自偷自拍视频 | 国产啪精品视 | 国产精品5| 欧美清纯唯美 | 国产乱码免费卡1卡二卡3 | 国产91蝌蚪 | 欧美午夜成人精品视频欧洲欧 | 国产女网红亚洲精品 | 免费v片在线观看完整版 | 欧美成年人在线免费观看视频 | 伦理影院在线观看 | 92福利国产三区视频 | 国产91精品在线播放 | 国产日韩a欧美在线人成 | 国产精品亚洲一区二区在线观看 |