国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
[原創(chuàng)]Js+Xml打造通用表單驗證
userphoto

2011.06.27

關注
首先有一份XML文件保存每個表單要驗證的選項
接下來在表單頁面中加載這個通用的JS代碼

FormConfig.Xml
-----------------------------------------------
<?xml version="1.0" encoding="gb2312"?>
<root>
  <item index="0" fm="fm1" atr0="username" atr1="1" atr2="C" atr3="1" atr4="20"/>
  <item index="1"  fm="fm1" atr0="title" atr1="1" atr2="C" atr3="1" atr4="50"/>
  <item index="2"  fm="fm1" atr0="content" atr1="1" atr2="N" atr3="1" atr4="1024"/>
  <item index="3"  fm="fm1" atr0="addtime" atr1="1" atr2="D" atr3="1" atr4="20"/>
  <item index="0"  fm="fm2" atr0="username" atr1="1" atr2="C" atr3="1" atr4="20"/>
  <item index="1"  fm="fm2" atr0="password" atr1="1" atr2="C" atr3="2" atr4="20"/>
</root>
Xml文件說明
Form指定要檢測的表單名
item index為自動編號 art0表單元素名. atr1同名表單項個數(shù) atr2檢測類型(現(xiàn)暫只支持數(shù)字,日期,備注,字符),atr3最小長度(0表示可以不填,對于日期型1表示后臺程序自動處理,不檢測,大于1表示強制用戶輸入) atr4最大長度

示例表單:

----------------------------------------------------------
<form Name=fm2 ID=fm2 method=post>
填寫頁面<BR />
name:<Input jsName=username Name=username MaxLength=20><BR />
pass:<Input jsName=password Name=password MaxLength=20><BR />
<input type=button onclick="check("fm2")" value=' 提 交 '>
</form>
-----------------------------------------------------------

比如上面的表單對應了xml中的fm2其中jsName指JS檢測表單項不符要求后提示的名稱.可自定義


通用Js代碼:
----------------------------------------------------------------
function check(fm)
{
     var submitIF=CheckItem(fm);
     if(submitIF)
     {
           fmFill.submit();
     }
}
function CheckItem(fm)
{
     var xmlDoc      =      new ActiveXObject("Msxml2.DOMDocument");
     xmlDoc.async=      false;
     xmlDoc.load("tstXml/config.xml");
     var root      =      xmlDoc.selectNodes("http://root/item[@fm=\'" + fm + "\'");
     var re            =      /[0-9]$/;
     var tt            =      true;
     var ck            =      false;
     for(i=0;i<root.length;i++)
     {
           
           //若項為字符型
           if(root.item(i).attributes(3).value.toUpperCase()      ==      "C")
           {
                 
                 //若項必填,且項數(shù)大于1
                 if(root.item(i).attributes(2).value      >1      &&      root.item(i).attributes(4).value >0)
                 {
                       for(k=1;k<=root.item(i).attributes(2).value;k++)
                       {
                             ck      =      ck      || document.all.item(root.item(i).attributes(1).value + "_" + k).checked;
                       }
                       if(ck      ==      false)
                       {
                             alert("你必須從" + k + "個選項中選擇至少一項" + document.all.item(root.item(i).attributes(1).value + "_1").jsName);
                             return false;
                       }
                 }
                 //若項必填,且項數(shù)=1
                 if(root.item(i).attributes(4).value      >      0      && root.item(i).attributes(2).value      ==      1)
                 {
                       if(document.all.item(root.item(i).attributes(1).value).value.length<root.item(i).attributes(4).value || document.all.item(root.item(i).attributes(1).value).value.length>root.item(i).attributes(5).value)
                       {
                             alert("項" + document.all.item(root.item(i).attributes(1).value).jsName + "必填 最小長度不能小于" + root.item(i).attributes(4).value + " 且最大長度不能大于" +root.item(i).attributes(5).value);
                             return false;
                       }
                 }
                 //若項為選填只需檢測最大長度是否超過設定
                 if(root.item(i).attributes(4).value      =      0)
                 {
                       if(document.all.item(root.item(i).attributes(1).value).value.length>root.item(i).attributes(5).value)
                       {
                             alert("項" + document.all.item(root.item(i).attributes(1).value).jsName + " 最大長度不能大于" +root.item(i).attributes(5).value);
                             return false;
                       }
                 }
           }      
           
           //若項為備注型
           if(root.item(i).attributes(3).value.toUpperCase()      ==      "N")
           {
                 //若項必填
                 if(root.item(i).attributes(4).value      >      0      && root.item(i).attributes(2).value      ==      1)
                 {
                       if(document.all.item(root.item(i).attributes(1).value).value.length<root.item(i).attributes(4).value || document.all.item(root.item(i).attributes(1).value).value.length>root.item(i).attributes(5).value)
                       {
                             alert("項" + document.all.item(root.item(i).attributes(1).value).jsName + "必填 最小長度不能小于" + root.item(i).attributes(4).value + " 且最大長度不能大于" +root.item(i).attributes(5).value);
                             return false;
                       }
                 }
                 //若項為選填只需檢測最大長度是否超過設定
                 if(root.item(i).attributes(4).value      =      0)
                 {
                       if(document.all.item(root.item(i).attributes(1).value).value.length>root.item(i).attributes(5).value)
                       {
                             alert("項" + document.all.item(root.item(i).attributes(1).value).jsName + " 最大長度不能大于" +root.item(i).attributes(5).value);
                             return false;
                       }
                 }
           }
           //若項類型為日期
           if(root.item(i).attributes(3).value.toUpperCase()      ==      "D")
           {
                 //若項必填,且項數(shù)大于1
                 if(root.item(i).attributes(2).value      >      1 && root.item(i).attributes(4).value      >      1)
                 {
                       for(k=1;k<=root.item(i).attributes(2).value;k++)
                       {
                             ck      =      ck      || document.all.item(root.item(i).attributes(1).value + "_" + k).checked;
                       }
                       if(ck      ==      false)
                       {
                             alert("你必須從" + k + "個選項中選擇至少一項" + document.all.item(root.item(i).attributes(1).value + "_1").jsName);
                             return false;
                       }
                 }
                 //若項必填,且項數(shù)=1
                 if(root.item(i).attributes(4).value      >      1      && root.item(i).attributes(2).value      ==      1)
                 {
                       if(document.all.item(root.item(i).attributes(1).value).value.length<root.item(i).attributes(4).value || document.all.item(root.item(i).attributes(1).value).value.length>root.item(i).attributes(5).value)
                       {
                             alert("項" + document.all.item(root.item(i).attributes(1).value).jsName + "必填 最小長度不能小于" + root.item(i).attributes(4).value + " 且最大長度不能大于" +root.item(i).attributes(5).value);
                             return false;
                       }
                 }
           }
           
           //若項類型為數(shù)字
           if(root.item(i).attributes(3).value.toUpperCase()      ==      "I")
           {
                 //若項必填,且項數(shù)大于1
                 if(root.item(i).attributes(2).value      >      1 && root.item(i).attributes(4).value      >      0)
                 {
                       for(k=1;k<=root.item(i).attributes(2).value;k++)
                       {
                             ck      =      ck      || document.all.item(root.item(i).attributes(1).value + "_" + k).checked;
                             tt      =      tt      && re.test(document.all.item(root.item(i).attributes(1).value + "_" + k).value);
                             if(tt      ==      false)
                             {
                                   alert(document.all.item(root.item(i).attributes(1).value + "_1").jsName + "選項中第" + k + "項值只能為數(shù)值!");
                                   return false;
                             }
                             
                       }
                       if(ck      ==      false)
                       {
                             alert("你必須從" + k + "個選項中選擇至少一項" + document.all.item(root.item(i).attributes(1).value + "_1").jsName);
                             return false;
                       }
                 }
                 //若項必填,且項數(shù)=1
                 if(root.item(i).attributes(4).value      >      0      && root.item(i).attributes(2).value      ==      1)
                 {
                       if(re.test(document.all.item(root.item(i).attributes(1).value).value)      ==      false || document.all.item(root.item(i).attributes(1).value).value=="")
                       {
                             alert("項" + document.all.item(root.item(i).attributes(1).value).jsName + "只能為數(shù)值");
                             return false;
                       }
                 }
                 //若為非必填項
                 if(root.item(i).attributes(4).value      ==      0 && document.all.item(root.item(i).attributes(1).value).value.length !=0 && re.test(document.all.item(root.item(i).attributes(1).value).value) ==      false)
                 {
                       alert("項" + document.all.item(root.item(i).attributes(1).value).jsName + "可以不填,若要填定必須為數(shù)值!");
                       return false;
                 }
           }
     }
     root            =      "";
     xmlDoc            =      "";
     return true;
}

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
為服務器控件添加javascript客戶端事件
IE下form.action不能提交表單(用于動態(tài)轉到地址)
web
簡單鏈表與泛型的效率測試
使用javascript訪問xml數(shù)據(jù)
用Javascript制作會計算的表單
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服