j2EE開發
          燙茶杯
          posts - 3,  comments - 0,  trackbacks - 0

          彈出的子窗口刷新父窗口:window.opener.location.reload();

          避免“出現不重新發送信息,則無法刷新網頁“警告框出現的方法:window.opener.location.href=window.opener.location.href
          window.opener.location.reload();

          此方法只適用于靜態父窗口。

          如果opener的信息是post提交的,所以刷新的時候要提交多一次,如果是get提交的信息就沒有問題,get提交的信息在url里面的,而post提交的信息是在請求體里面的

          如果只是改href來刷新,opener就那不到post的信息了

          解決辦法就是用get或者在opener里面建一個form,action是opener自己,保存需要的信息,然后在子窗口里面用window.opener.document.formxxx.submit();代替window.opener.location.reload();

          如果是調用父窗口的javascript函數,可以這么解決:

          window.opener.yourjavascriptfunction()

          - 作者: wokankan 2005年07月31日, 星期日 11:50  回復(0) |  引用(0)加入博采

          判斷form內容有無更改

          /**
          * This function is to check if a form (or a container of implements) has been changed.
          * JK 2004-01-05
          * formObj:the checked form
          * exceptObjName:the name of whitch need not be checked;
          * For example:isFormChangedFun(document.frm,"ACheckbox,BRadio,CSelect");
          */
          function isFormChanged(formObj,exceptObjName)
          {
          if(formObj==null) formObj=document.forms[0];
          if(exceptObjName==null) exceptObjName=="";
          var selectObjs=formObj.getElementsByTagName("SELECT");//For Select Obj
          for(var i=0;i<selectObjs.length;i++)
          {
          if((selectObjs[i].name=="")||(eval("/(^|,)"+selectObjs[i].name+"(,|$)/g").test(exceptObjName))) continue;
          for(var j=1;j<selectObjs[i].length;j++)
          {
          if(selectObjs[i].options[j].defaultSelected!=selectObjs[i].options[j].selected)
          return true;
          }
          }

          var inputObjs=formObj.getElementsByTagName("INPUT");//For Input Obj
          for(var i=0;i<inputObjs.length;i++)
          {
          if((inputObjs[i].name=="")||(eval("/(^|,)"+inputObjs[i].name+"(,|$)/g").test(exceptObjName))) continue;
          if((inputObjs[i].type.toUpperCase()=="TEXT")&&(inputObjs[i].defaultValue!=inputObjs[i].value))
          return true;

          else if(((inputObjs[i].type.toUpperCase()=="RADIO")||(inputObjs[i].type.toUpperCase()=="CHECKBOX"))
          &&(inputObjs[i].defaultChecked!=inputObjs[i].checked))
          return true;

          }

          var textareaObjs=formObj.getElementsByTagName("TEXTAREA");//For Textarea Obj
          for(var i=0;i<textareaObjs.length;i++)
          {
          if((textareaObjs[i].name=="")||(eval("/(^|,)"+textareaObjs[i].name+"(,|$)/g").test(exceptObjName))) continue;
          if(textareaObjs[i].defaultValue!=textareaObjs[i].value)
          return true;

          }
          return false;
          }

          - 作者: wokankan 2005年04月29日, 星期五 18:54  回復(0) |  引用(0)加入博采

          常用javascript
          b/s開發常用javaScript技術
          2004-01-24 ?? 嵐·LEN ??
          打印自: LEN'sMemosite · 嵐色天空
          地址: http://www.memosite.cn/article.php/203
          在b/s開發中經常用到的javaScript技術

          一、驗證類
          1、數字驗證內
          ? 1.1 整數
          ? 1.2 大于0的整數 (用于傳來的ID的驗證)
          ? 1.3 負整數的驗證
          ? 1.4 整數不能大于iMax
          ? 1.5 整數不能小于iMin
          2、時間類
          ? 2.1 短時間,形如 (13:04:06)
          ? 2.2 短日期,形如 (2003-12-05)
          ? 2.3 長時間,形如 (2003-12-05 13:04:06)
          ? 2.4 只有年和月。形如(2003-05,或者2003-5)
          ? 2.5 只有小時和分鐘,形如(12:03)
          3、表單類
          ? 3.1 所有的表單的值都不能為空
          ? 3.2 多行文本框的值不能為空。
          ? 3.3 多行文本框的值不能超過sMaxStrleng
          ? 3.4 多行文本框的值不能少于sMixStrleng
          ? 3.5 判斷單選框是否選擇。
          ? 3.6 判斷復選框是否選擇.
          ? 3.7 復選框的全選,多選,全不選,反選
          ? 3.8 文件上傳過程中判斷文件類型
          4、字符類
          ? 4.1 判斷字符全部由a-Z或者是A-Z的字字母組成
          ? 4.2 判斷字符由字母和數字組成。
          ? 4.3 判斷字符由字母和數字,下劃線,點號組成.且開頭的只能是下劃線和字母
          ? 4.4 字符串替換函數.Replace();
          5、瀏覽器類
          ? 5.1 判斷瀏覽器的類型
          ? 5.2 判斷ie的版本
          ? 5.3 判斷客戶端的分辨率
          ?
          6、結合類
          ? 6.1 email的判斷。
          ? 6.2 手機號碼的驗證
          ? 6.3 身份證的驗證
          ?

          二、功能類

          1、時間與相關控件類
          ? 1.1 日歷
          ? 1.2 時間控件
          ? 1.3 萬年歷
          ? 1.4 顯示動態顯示時鐘效果(文本,如OA中時間)
          ? 1.5 顯示動態顯示時鐘效果 (圖像,像手表)
          2、表單類
          ? 2.1 自動生成表單
          ? 2.2 動態添加,修改,刪除下拉框中的元素
          ? 2.3 可以輸入內容的下拉框
          ? 2.4 多行文本框中只能輸入iMax文字。如果多輸入了,自動減少到iMax個文字(多用于短信發送)
          ?
          3、打印類
          ? 3.1 打印控件
          4、事件類
          ? 4.1 屏蔽右鍵
          ? 4.2 屏蔽所有功能鍵
          ? 4.3 --> 和<-- F5 F11,F9,F1
          ? 4.4 屏蔽組合鍵ctrl+N
          5、網頁設計類
          ? 5.1 連續滾動的文字,圖片(注意是連續的,兩段文字和圖片中沒有空白出現)
          ? 5.2 html編輯控件類
          ? 5.3 顏色選取框控件
          ? 5.4 下拉菜單
          ? 5.5 兩層或多層次的下拉菜單
          ? 5.6 仿IE菜單的按鈕。(效果如rongshuxa.com的導航欄目)
          ? 5.7 狀態欄,title欄的動態效果(例子很多,可以研究一下)
          ? 5.8 雙擊后,網頁自動滾屏
          6、樹型結構。
          ? 6.1 asp+SQL版
          ? 6.2 asp+xml+sql版
          ? 6.3 java+sql或者java+sql+xml
          7、無邊框效果的制作
          8、連動下拉框技術
          9、文本排序

          一、驗證類
          1、數字驗證內
          ? 1.1 整數
          ????? /^(-|\+)?\d+$/.test(str)
          ? 1.2 大于0的整數 (用于傳來的ID的驗證)
          ????? /^\d+$/.test(str)
          ? 1.3 負整數的驗證
          ????? /^-\d+$/.test(str)
          2、時間類
          ? 2.1 短時間,形如 (13:04:06)
          ????? function isTime(str)
          ????? {
          ??????? var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
          ??????? if (a == null) {alert('輸入的參數不是時間格式'); return false;}
          ??????? if (a[1]>24 || a[3]>60 || a[4]>60)
          ??????? {
          ????????? alert("時間格式不對");
          ????????? return false
          ??????? }
          ??????? return true;
          ????? }
          ? 2.2 短日期,形如 (2003-12-05)
          ????? function strDateTime(str)
          ????? {
          ???????? var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
          ???????? if(r==null)return false;
          ???????? var d= new Date(r[1], r[3]-1, r[4]);
          ???????? return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
          ????? }
          ? 2.3 長時間,形如 (2003-12-05 13:04:06)
          ????? function strDateTime(str)
          ????? {
          ??????? var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
          ??????? var r = str.match(reg);
          ??????? if(r==null)return false;
          ??????? var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
          ??????? return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
          ????? }
          ? 2.4 只有年和月。形如(2003-05,或者2003-5)
          ? 2.5 只有小時和分鐘,形如(12:03)
          3、表單類
          ? 3.1 所有的表單的值都不能為空
          ????? <input onblur="if(this.value.replace(/^\s+|\s+$/g,'')=='')alert('不能為空!')">
          ? 3.2 多行文本框的值不能為空。
          ? 3.3 多行文本框的值不能超過sMaxStrleng
          ? 3.4 多行文本框的值不能少于sMixStrleng
          ? 3.5 判斷單選框是否選擇。
          ? 3.6 判斷復選框是否選擇.
          ? 3.7 復選框的全選,多選,全不選,反選
          ? 3.8 文件上傳過程中判斷文件類型
          4、字符類
          ? 4.1 判斷字符全部由a-Z或者是A-Z的字字母組成
          ????? <input onblur="if(/[^a-zA-Z]/g.test(this.value))alert('有錯')">
          ? 4.2 判斷字符由字母和數字組成。
          ????? <input onblur="if(/[^0-9a-zA-Z]/g.test(this.value))alert('有錯')">
          ? 4.3 判斷字符由字母和數字,下劃線,點號組成.且開頭的只能是下劃線和字母
          ????? /^([a-zA-z_]{1})([\w]*)$/g.test(str)
          ? 4.4 字符串替換函數.Replace();
          5、瀏覽器類
          ? 5.1 判斷瀏覽器的類型
          ????? window.navigator.appName
          ? 5.2 判斷ie的版本
          ????? window.navigator.appVersion
          ? 5.3 判斷客戶端的分辨率
          ????? window.screen.height;? window.screen.width;
          ?
          6、結合類
          ? 6.1 email的判斷。
          ????? function ismail(mail)
          ????? {
          ??????? return(new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(mail));
          ????? }
          ? 6.2 手機號碼的驗證
          ? 6.3 身份證的驗證
          ????? function isIdCardNo(num)
          ????? {
          ??????? if (isNaN(num)) {alert("輸入的不是數字!"); return false;}
          ??????? var len = num.length, re;
          ??????? if (len == 15)
          ????????? re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);
          ??????? else if (len == 18)
          ????????? re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/);
          ??????? else {alert("輸入的數字位數不對!"); return false;}
          ??????? var a = num.match(re);
          ??????? if (a != null)
          ??????? {
          ????????? if (len==15)
          ????????? {
          ??????????? var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
          ??????????? var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
          ????????? }
          ????????? else
          ????????? {
          ??????????? var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
          ??????????? var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
          ????????? }
          ????????? if (!B) {alert("輸入的身份證號 "+ a[0] +" 里出生日期不對!"); return false;}
          ??????? }
          ??????? return true;
          ????? }

          3.7 復選框的全選,多選,全不選,反選
          <form name=hrong>
          <input type=checkbox name=All onclick="checkAll('mm')">全選<br/>
          <input type=checkbox name=mm onclick="checkItem('All')"><br/>
          <input type=checkbox name=mm onclick="checkItem('All')"><br/>
          <input type=checkbox name=mm onclick="checkItem('All')"><br/>
          <input type=checkbox name=mm onclick="checkItem('All')"><br/>
          <input type=checkbox name=mm onclick="checkItem('All')"><br/><br/>


          <input type=checkbox name=All2 onclick="checkAll('mm2')">全選<br/>
          <input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
          <input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
          <input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
          <input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
          <input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>

          </form>

          <SCRIPT LANGUAGE="java script">
          function checkAll(str)
          {
          ? var a = document.getElementsByName(str);
          ? var n = a.length;
          ? for (var i=0; i<n; i++)
          ? a[i].checked = window.event.srcElement.checked;
          }
          function checkItem(str)
          {
          ? var e = window.event.srcElement;
          ? var all = eval("document.hrong."+ str);
          ? if (e.checked)
          ? {
          ??? var a = document.getElementsByName(e.name);
          ??? all.checked = true;
          ??? for (var i=0; i<a.length; i++)
          ??? {
          ????? if (!a[i].checked){ all.checked = false; break;}
          ??? }
          ? }
          ? else all.checked = false;
          }
          </SCRIPT>

          3.8 文件上傳過程中判斷文件類型
          <input type=file onchange="alert(this.value.match(/^(.*)(\.)(.{1,8})$/)[3])">

          畫圖:
          <OBJECT
          id=S
          style="LEFT: 0px; WIDTH: 392px; TOP: 0px; HEIGHT: 240px"
          height=240
          width=392
          classid="clsid:369303C2-D7AC-11D0-89D5-00A0C90833E6">
          </OBJECT>
          <SCRIPT>
          S.DrawingSurface.ArcDegrees(0,0,0,30,50,60);
          S.DrawingSurface.ArcRadians(30,0,0,30,50,60);
          S.DrawingSurface.Line(10,10,100,100);
          </SCRIPT>

          寫注冊表:
          <SCRIPT>
          var WshShell = WScript.CreateObject("WScript.Shell");
          WshShell.RegWrite ("HKCU\\Software\\ACME\\FortuneTeller\\", 1, "REG_BINARY");
          WshShell.RegWrite ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader", "Goocher!", "REG_SZ");
          var bKey =??? WshShell.RegRead ("HKCU\\Software\\ACME\\FortuneTeller\\");
          WScript.Echo (WshShell.RegRead ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader"));
          WshShell.RegDelete ("HKCU\\Software\\ACME\\FortuneTeller\\MindReader");
          WshShell.RegDelete ("HKCU\\Software\\ACME\\FortuneTeller\\");
          WshShell.RegDelete ("HKCU\\Software\\ACME\\");
          </SCRIPT>

          TABLAE相關(客戶端動態增加行列)
          <HTML>
          <SCRIPT LANGUAGE="JScript">
          function numberCells() {
          ??? var count=0;
          ??? for (i=0; i < document.all.mytable.rows.length; i++) {
          ??????? for (j=0; j < document.all.mytable.rows(i).cells.length; j++) {
          ??????????? document.all.mytable.rows(i).cells(j).innerText = count;
          ??????????? count++;
          ??????? }
          ??? }
          }
          </SCRIPT>
          <BODY onload="numberCells()">
          <TABLE id=mytable border=1>
          <TR><TH>&nbsp;</TH><TH>&nbsp;</TH><TH>&nbsp;</TH><TH>&nbsp;</TH></TR>
          <TR><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD></TR>
          <TR><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD></TR>
          </TABLE>
          </BODY>
          </HTML>

          1.身份證嚴格驗證:

          <script>
          var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"內蒙古",21:"遼寧",22:"吉林",23:"黑龍江",31:"上海",32:"江蘇",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山東",41:"河南",42:"湖北",43:"湖南",44:"廣東",45:"廣西",46:"海南",50:"重慶",51:"四川",52:"貴州",53:"云南",54:"西藏",61:"陜西",62:"甘肅",63:"青海",64:"寧夏",65:"新疆",71:"臺灣",81:"香港",82:"澳門",91:"國外"}
          ?
          function cidInfo(sId){
          ?var iSum=0
          ?var info=""
          ?if(!/^\d{17}(\d|x)$/i.test(sId))return false;
          ?sId=sId.replace(/x$/i,"a");
          ?if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:非法地區";
          ?sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
          ?var d=new Date(sBirthday.replace(/-/g,"/"))
          ?if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:非法生日";
          ?for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
          ?if(iSum%11!=1)return "Error:非法證號";
          ?return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")
          }

          document.write(cidInfo("380524198002300016"),"<br/>");
          document.write(cidInfo("340524198002300019"),"<br/>")
          document.write(cidInfo("340524197711111111"),"<br/>")
          document.write(cidInfo("34052419800101001x"),"<br/>");
          </script>

          2.驗證IP地址
          <SCRIPT LANGUAGE="java script">
          function isip(s){
          ?var check=function(v){try{return (v<=255 && v>=0)}catch(x){return false}};
          ?var re=s.split(".")
          ?return (re.length==4)?(check(re[0]) && check(re[1]) && check(re[2]) && check(re[3])):false
          }

          var s="202.197.78.129";
          alert(isip(s))
          </SCRIPT>

          ?

          3.加sp1后還能用的無邊框窗口!!
          <HTML XMLNS:IE>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
          <IE:Download ID="include" STYLE="behavior:url(#default#download)" />
          <title>Chromeless Window</title>

          <SCRIPT LANGUAGE="JScript">
          /*--- Special Thanks For andot ---*/

          /*
          ?This following code are designed and writen by Windy_sk <seasonx@163.net>
          ?You can use it freely, but u must held all the copyright items!
          */

          /*--- Thanks For andot Again ---*/

          var CW_width?= 400;
          var CW_height?= 300;
          var CW_top?= 100;
          var CW_left?= 100;
          var CW_url?= "/";
          var New_CW?= window.createPopup();
          var CW_Body?= New_CW.document.body;
          var content?= "";
          var CSStext?= "margin:1px;color:black; border:2px outset;border-style:expression(onmouseout=onmouseup=function(){this.style.borderStyle='outset'}, onmousedown=function(){if(event.button!=2)this.style.borderStyle='inset'});background-color:buttonface;width:16px;height:14px;font-size:12px;line-height:11px;cursor:Default;";

          //Build Window
          include.startDownload(CW_url, function(source){content=source});

          function insert_content(){
          ?var temp = "";
          ?CW_Body.style.overflow??= "hidden";
          ?CW_Body.style.backgroundColor?= "white";
          ?CW_Body.style.border??=? "solid black 1px";
          ?content = content.replace(/<a ([^>]*)>/g,"<a onclick='parent.open(this.href);return false' $1>");
          ?temp += "<table width=100% height=100% cellpadding=0 cellspacing=0 border=0>";
          ?temp += "<tr style=';font-size:12px;background:#0099CC;height:20;cursor:default' ondblclick=\"Max.innerText=Max.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();\" onmouseup='parent.drag_up(event)' onmousemove='parent.drag_move(event)' onmousedown='parent.drag_down(event)' onselectstart='return false' oncontextmenu='return false'>";
          ?temp += "<td style='color:#ffffff;padding-left:5px'>Chromeless Window For IE6 SP1</td>";
          ?temp += "<td style='color:#ffffff;padding-right:5px;' align=right>";
          ?temp += "<span id=Help? onclick=\"alert('Chromeless Window For IE6 SP1? -? Ver 1.0\\n\\nCode By Windy_sk\\n\\nSpecial Thanks For andot')\" style=\""+CSStext+"font-family:System;padding-right:2px;\">?</span>";
          ?temp += "<span id=Min?? onclick='parent.New_CW.hide();parent.blur()' style=\""+CSStext+"font-family:Webdings;\" title='Minimum'>0</span>";
          ?temp += "<span id=Max?? onclick=\"this.innerText=this.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();\" style=\""+CSStext+"font-family:Webdings;\" title='Maximum'>1</span>";
          ?temp += "<span id=Close onclick='parent.opener=null;parent.close()' style=\""+CSStext+"font-family:System;padding-right:2px;\" title='Close'>x</span>";
          ?temp += "</td></tr><tr><td colspan=2>";
          ?temp += "<div id=include style='overflow:scroll;overflow-x:hidden;overflow-y:auto; HEIGHT: 100%; width:"+CW_width+"'>";
          ?temp += content;
          ?temp += "</div>";
          ?temp += "</td></tr></table>";
          ?CW_Body.innerHTML = temp;
          }

          setTimeout("insert_content()",1000);

          var if_max = true;
          function show_CW(){
          ?window.moveTo(10000, 10000);
          ?if(if_max){
          ??New_CW.show(CW_top, CW_left, CW_width, CW_height);
          ??if(typeof(New_CW.document.all.include)!="undefined"){
          ???New_CW.document.all.include.style.width = CW_width;
          ???New_CW.document.all.Max.innerText = "1";
          ??}
          ??
          ?}else{
          ??New_CW.show(0, 0, screen.width, screen.height);
          ??New_CW.document.all.include.style.width = screen.width;
          ?}
          }

          window.onfocus? = show_CW;
          window.onresize = show_CW;

          // Move Window
          var drag_x,drag_y,draging=false

          function drag_move(e){
          ?if (draging){
          ??New_CW.show(e.screenX-drag_x, e.screenY-drag_y, CW_width, CW_height);
          ??return false;
          ?}
          }

          function drag_down(e){
          ?if(e.button==2)return;
          ?if(New_CW.document.body.offsetWidth==screen.width && New_CW.document.body.offsetHeight==screen.height)return;
          ?drag_x=e.clientX;
          ?drag_y=e.clientY;
          ?draging=true;
          ?e.srcElement.setCapture();
          }

          function drag_up(e){
          ?draging=false;
          ?e.srcElement.releaseCapture();
          ?if(New_CW.document.body.offsetWidth==screen.width && New_CW.document.body.offsetHeight==screen.height) return;
          ?CW_top? = e.screenX-drag_x;
          ?CW_left = e.screenY-drag_y;
          }

          </SCRIPT>
          </HTML>

          電話號碼的驗證

          要求:
            (1)電話號碼由數字、"("、")"和"-"構成
            (2)電話號碼為3到8位
            (3)如果電話號碼中包含有區號,那么區號為三位或四位
            (4)區號用"("、")"或"-"和其他部分隔開
            (5)移動電話號碼為11或12位,如果為12位,那么第一位為0
            (6)11位移動電話號碼的第一位和第二位為"13"
            (7)12位移動電話號碼的第二位和第三位為"13"
            根據這幾條規則,可以與出以下正則表達式:
            (^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)


          <script language="java script">
          function PhoneCheck(s) {
          var str=s;
          var reg=/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/
          alert(reg.test(str));
          }
          </script>
          <input type=text name="iphone">
          <input type=button onclick="PhoneCheck(document.all.iphone.value)" value="Check">

          具有在輸入非數字字符不回顯的效果,即對非數字字符的輸入不作反應。
          function numbersonly(field,event){
          ?var key,keychar;
          ?if(window.event){
          ??key = window.event.keyCode;
          ?}
          ?else if (event){
          ??key = event.which;
          ?}
          ?else{
          ??return true
          ?}
          ?keychar = String.fromCharCode(key);
          ?if((key == null)||(key == 0)||(key == 8)||(key == 9)||(key == 13)||(key == 27)){
          ??return true;
          ?}
          ?else if(("0123456789.").indexOf(keychar)>-1){
          ??window.status = "";
          ??return true;
          ?}
          ?else {
          ??window.status = "Field excepts numbers only";
          ??return false;
          ?}
          }

          驗證ip

          str=document.RegExpDemo.txtIP.value;
          if(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.test(str)==false)
          {
          ?window.alert('錯誤的IP地址格式');
          ?document.RegExpDemo.txtIP.select();
          ?document.RegExpDemo.txtIP.focus();
          ?return;
          }
          if(RegExp.$1<1 || RegExp.$1>254||RegExp.$2<0||RegExp.$2>254||RegExp.$3<0||RegExp.$3>254||RegExp.$4<1||RegExp.$4>254)
          {
          ?window.alert('錯誤的IP地址');
          ?document.RegExpDemo.txtIP.select();
          ?document.RegExpDemo.txtIP.focus();
          ?return;
          }
          //剔除 如? 010.020.020.03 前面 的0
          var str=str.replace(/0(\d)/g,"$1");
          str=str.replace(/0(\d)/g,"$1");
          window.alert(str);

          //一下是取數據的類
          //Obj參數指定數據的來源(限定Table),默認第一行為字段名稱行
          //GetTableData類提供MoveNext方法,參數是表的行向上或向下移動的位數,正數向下移動,負數向上.
          //GetFieldData方法獲得指定的列名的數據
          //Sort_desc方法對指定的列按降序排列
          //Sort_asc方法對指定的列按升序排列
          //GetData方法返回字段值為特定值的數據數組,提供數據,可以在外部進行其他處理
          //Delete方法刪除當前記錄,數組減少一行
          //初始化,Obj:table的名字,Leftlen:左面多余數據長度,Rightlen:右面多余數據長度,
          function GetTableData(Obj,LeftLen,RightLen){
          var MyObj=document.all(Obj);
          var iRow=MyObj.rows.length;
          var iLen=MyObj.rows[0].cells.length;
          var i,j;

          TableData=new Array();
          ??for (i=0;i< iRow;i++){
          ???TableData[i]=new Array();
          ???for (j=0;j<iLen;j++){
          ???TableStr=MyObj.rows(i).cells(j).innerText;
          ???TableStr=TableStr.substring(LeftLen, TableStr.length-RightLen).Trim();
          ???TableStr=TableStr.replace(/ /gi,"").replace(/\r\n/ig,"");
          ???TableData[i][j]=TableStr;
          ???}
          ???}
          ?
          ? this.TableData=TableData;
          ? this.cols=this.TableData[0].length;
          ? this.rows=this.TableData.length;
          ? this.rowindex=0;
          }


          function movenext(Step){
          if (this.rowindex>=this.rows){
          return
          }

          if (Step=="" || typeof(Step)=="undefined") {
          ?if (this.rowindex<this.rows-1)
          ?this.rowindex++;
          ?return;

          }
          ?else{
          ??if (this.rowindex + Step<=this.rows-1 && this.rowindex + Step>=0 ){
          ??this.rowindex=this.rowindex + Step;
          ??}
          ??else
          ??{
          ??if (this.rowindex + Step<0){
          ?? this.rowindex= 0;
          ?? return;
          ?? }
          ??if (this.rowindex + Step>this.rows-1){
          ?? this.rowindex= this.rows-1;
          ?? return;
          ?? }
          ??}
          ?}
          }


          function getfielddata(Field){
          var colindex=-1;
          var i=0;
          ?if (typeof(Field) == "number"){
          ???colindex=Field;
          ??}
          ?else
          ?{
          ?for (i=0;i<this.cols && this.rowindex<this.rows ;i++){
          ???if (this.TableData[0][i]==Field){
          ???colindex=i;
          ???break;
          ???}??
          ??}
          ?}
          ??if (colindex!=-1) {
          ??return this.TableData[this.rowindex][colindex];
          ??}

          }

          ?

          function sort_desc(){//降序
          ?var colindex=-1;
          ?var highindex=-1;
          ?desc_array=new Array();
          ?var i,j;
          for (n=0; n<arguments.length; n++){
          ?Field=arguments[arguments.length-1-n];
          ?for (i=0;i<this.cols;i++){
          ??if (this.TableData[0][i]==Field){
          ??colindex=i;
          ??break;
          ??}??
          ?}
          ?? if ( colindex==-1 )
          ??return;
          ?? else
          ??{
          ??desc_array[0]=this.TableData[0];
          ??for(i=1;i<this.rows;i++){
          ??desc_array[i]=this.TableData[1];
          ??highindex=1;
          ???for(j=1;j<this.TableData.length;j++){
          ????? if ?(desc_array[i][colindex]<this.TableData[j][colindex]){?
          ????? desc_array[i]=this.TableData[j];??
          ????? highindex=j;
          ????}
          ????
          ???}
          ?????if (highindex!=-1)
          ?????this.TableData=this.TableData.slice(0,highindex).concat(this.TableData.slice(highindex+1,this.TableData.length));?????????????????????
          ??}
          ?}


          ?this.TableData=desc_array;
          }
          ?return;
          }

          ?

          function sort_asc(){//升序
          ?var colindex=-1;
          ?var highindex=-1;
          ?var i,j;
          for (n=0; n<arguments.length; n++){
          ???asc_array=new Array();
          ???Field=arguments[arguments.length-1-n];
          ???for (i=0;i<this.cols;i++){
          ????if (this.TableData[0][i]==Field){
          ????colindex=i;
          ????break;
          ????}??
          ???}
          ???if ( colindex==-1 )
          ?????return;
          ???else
          ?????{
          ?????asc_array[0]=this.TableData[0];
          ?????for(i=1;i<this.rows;i++){
          ?????asc_array[i]=this.TableData[1];
          ?????highindex=1;
          ??????for(j=1;j<this.TableData.length;j++){//找出最小的列值
          ???????? if ?(asc_array[i][colindex]>this.TableData[j][colindex]){?
          ???????? asc_array[i]=this.TableData[j];??
          ???????? highindex=j;
          ??????????
          ????????}
          ??????????
          ???????}
          ?????????if (highindex!=-1)
          ?????????this.TableData=this.TableData.slice(0,highindex).concat(this.TableData.slice(highindex+1,this.TableData.length));?????????????????????
          ?????????
          ??????}
          ?????}


          ????this.TableData=asc_array;
          ?}
          ?return;
          }

          ?

          function getData(Field,FieldValue){
          var colindex=-1;
          var i,j;

          GetData=new Array();
          ??if (typeof(Field)=="undefined" || typeof(FieldValue)=="undefined" ){
          ??return this.TableData;
          ??}
          ??
          ???for(j=0;j<this.cols;j++){
          ????? if ?(this.TableData[0][j]==Field){
          ?????colindex=j;
          ?????}
          ???}
          ???if (colindex!=-1){
          ???
          ???for(i=1;i<this.rows;i++){
          ????? if ?(this.TableData[i][colindex]==FieldValue){
          ?????GetData[i]=new Array();
          ?????GetData[i]=this.TableData[i];?
          ?????}
          ???}
          ???}
          ?? return GetData;
          }
          function DeletE(){
          this.TableData=this.TableData.slice(0,this.rowindex).concat(this.TableData.slice(this.rowindex+1,this.TableData.length));?????????????????????
          this.rows=this.TableData.length;
          return;
          }
          function updateField(Field,FieldValue){
          var colindex=-1;
          var i=0;
          ?if (typeof(Field) == "number"){
          ???colindex=Field;
          ??}
          ?else
          ?{
          ?for (i=0;i<this.cols && this.rowindex<this.rows ;i++){
          ???if (this.TableData[0][i]==Field){
          ???colindex=i;
          ???break;
          ???}??
          ??}
          ?}
          ?if (colindex!=-1) {
          ??this.TableData[this.rowindex][colindex]=FieldValue;
          ??}


          }
          function movefirst(){
          this.rowindex=0;
          }
          function movelast(){
          this.rowindex=this.rows-1;
          }
          function String.prototype.Trim() {return this.replace(/(^\s*)|(\s*$)/g,"");}
          GetTableData.prototype.MoveNext = movenext;
          GetTableData.prototype.GetFieldData = getfielddata;
          GetTableData.prototype.Sort_asc = sort_asc;
          GetTableData.prototype.Sort_desc = sort_desc;
          GetTableData.prototype.GetData = getData;
          GetTableData.prototype.Delete = DeletE;
          GetTableData.prototype.UpdateField = updateField;
          GetTableData.prototype.MoveFirst = movefirst;

          具體的例子:http://202.119.73.208/NetEAn/com/test/jsprint.htm

          在每個文本框的onblur事件中調用校驗代碼,并且每個文本框中onKeyDown事件中寫一個enter轉tab函數

          //回車鍵換為tab
          function enterToTab()
          {
          ??? if(event.srcElement.type != 'button' && event.srcElement.type != 'textarea'
          ?????? && event.keyCode == 13)
          ??? {
          ??????? event.keyCode = 9;
          ??? }
          }

          有時候還需要自由編輯表格---
          給大家一個自由編輯表格的小例子,寫的有點亂,呵呵:)

          //===============================start================================


          <HTML>
          <HEAD>
          <META http-equiv="Content-Type" content="text/html; charset=gb2312">
          <TITLE>測試修改表格</TITLE>
          <STYLE>
          /*提示層的樣式*/
          div
          {
          ? BORDER-RIGHT: #80c144 1px solid;
          ? BORDER-TOP: #80c144 1px solid;
          ? VISIBILITY: hidden;
          ? BORDER-LEFT: #80c144 1px solid;
          ? CURSOR: default;
          ? LINE-HEIGHT: 20px;
          ? BORDER-BOTTOM: #80c144 1px solid;
          ? FONT-FAMILY: 宋體;
          ? font-size:12px;
          ? POSITION: absolute;
          ? BACKGROUND-COLOR: #f6f6f6;
          ? TOP:30px;
          ? LEFT:30px;
          }
          /*tr的樣式*/
          tr
          {
          ??? font-family: "宋體";
          ??? color: #000000;
          ??? background-color: #C1DBF5;
          ??? font-size: 12px
          }
          /*table腳注樣式*/
          .TrFoot
          {
          ??? FONT-SIZE: 12px;
          ??? font-family:"宋體", "Verdana", "Arial";
          ??? BACKGROUND-COLOR: #6699CC;
          ??? COLOR:#FFFFFF;
          ??? height: 25;
          }
          /*trhead屬性*/
          .TrHead
          {
          ??? FONT-SIZE: 13px;
          ??? font-family:"宋體", "Verdana", "Arial";
          ??? BACKGROUND-COLOR: #77AADD;
          ??? COLOR:#FFFFFF;
          ??? height: 25;
          }
          /*文本框樣式*/
          INPUT
          {
          ??? BORDER-COLOR: #AACEF7 #AACEF7 #AACEF7 #AACEF7;
          ??? BORDER-RIGHT: 1px solid;
          ??? BORDER-TOP: 1px solid;
          ??? BORDER-LEFT: 1px solid;
          ??? BORDER-BOTTOM: 1px solid;
          ??? FONT-SIZE: 12px;
          ??? FONT-FAMILY: "宋體","Verdana";
          ??? color: #000000;
          ??? BACKGROUND-COLOR: #E9EFF5;
          }
          /*button樣式*/
          button
          {
          ??? BORDER-COLOR: #AACEF7 #AACEF7 #AACEF7 #AACEF7;
          ??? BACKGROUND-COLOR: #D5E4F3;
          ??? CURSOR: hand;
          ??? FONT-SIZE:12px;
          ??? BORDER-RIGHT: 1px solid;
          ??? BORDER-TOP: 1px solid;
          ??? BORDER-LEFT: 1px solid;
          ??? BORDER-BOTTOM: 1px solid;
          ??? COLOR: #000000;
          }
          </STYLE>
          </HEAD>
          <BODY>
          <SCRIPT language = "java script">
          <!--全局變量
          //標志位,值為false代表未打開一個編輯框,值為true為已經打開一個編輯框開始編輯
          var editer_table_cell_tag = false;
          //開啟編輯功能標志,值為true時為允許編輯
          var run_edit_flag = false;
          //-->
          </SCRIPT>

          <SCRIPT language = "java script">
          <!--
          /**
          ?* 編輯表格函數
          ?* 單擊某個單元格可以對里面的內容進行自由編輯
          ?* @para tableID 為要編輯的table的id
          ?* @para noEdiID 為不要編輯的td的ID,比如說table的標題
          ?* 可以寫為<TD id="no_editer">自由編輯表格</TD>
          ?* 此時該td不可編輯
          ?*/
          function editerTableCell(tableId,noEdiId)
          {
          ?var tdObject = event.srcElement;
          ?var tObject = ((tdObject.parentNode).parentNode).parentNode;
          ?if(tObject.id == tableId &&tdObject.id != noEdiId&&editer_table_cell_tag == false && run_edit_flag == true)
          ?{
          ??tdObject.innerHTML = "<input type=text id=edit_table_txt name=edit_table_txt value="+tdObject.innerText+" size='15' onKeyDown='enterToTab()'>? <input type=button value=' 確定 ' onclick='certainEdit()'>";
          ??edit_table_txt.focus();
          ??edit_table_txt.select();
          ??editer_table_cell_tag = true;
          ??//修改按鈕提示信息
          ??editTip.innerText = "請先點確定按鈕確認修改!";??
          ?}
          ?else
          ?{
          ??return false;
          ?}
          }

          /**
          ?* 確定修改
          ?*/
          function certainEdit()
          {
          ?var bObject = event.srcElement;
          ?var tdObject = bObject.parentNode;?
          ?var txtObject = tdObject.firstChild;
          ?tdObject.innerHTML = txtObject.value;
          ?//代表編輯框已經關閉
          ?editer_table_cell_tag = false;
          ?//修改按鈕提示信息
          ?editTip.innerText = "請單擊某個單元格進行編輯!";
          }

          function enterToTab()
          {
          ??? if(event.srcElement.type != 'button' && event.srcElement.type != 'textarea'
          ?????? && event.keyCode == 13)
          ??? {
          ??????? event.keyCode = 9;
          ??? }
          }

          /**
          ?* 控制是否編輯
          ?*/
          function editStart()
          {
          ?if(event.srcElement.value == "開始編輯")
          ?{
          ??event.srcElement.value = "編輯完成";
          ??run_edit_flag = true;
          ?}
          ?else
          ?{
          ??//如果當前沒有編輯框,則編輯成功,否則,無法提交
          ??//必須按確定按鈕后才能正常提交
          ??if(editer_table_cell_tag == false)
          ??{
          ???alert("編輯成功結束!");
          ???event.srcElement.value = "開始編輯";
          ???run_edit_flag = false;
          ??}
          ?}
          }

          /**
          ?* 根據不同的按鈕提供不同的提示信息
          ?*/
          function showTip()
          {
          ?if(event.srcElement.value == "編輯完成")
          ?{
          ??editTip.style.top = event.y + 15;
          ??editTip.style.left = event.x + 12;
          ??editTip.style.visibility = "visible";??
          ?}
          ?else
          ?{
          ??editTip.style.visibility = "hidden";???
          ?}?
          }
          -->
          </SCRIPT>
          <TABLE id="editer_table" width="100%" align="center"
          ??? onclick="editerTableCell('editer_table','no_editer')">?
          ??? <TR class="TrHead">
          ??<TD colspan="3" align="center" id="no_editer">自由編輯表格</TD>??
          ?</TR>
          ?<TR>
          ??<TD width="33%">單擊開始編輯按鈕,然后點擊各單元格編輯</TD>
          ??<TD width="33%">2</TD>
          ??<TD width="33%">3</TD>
          ?</TR>
          ?<TR>
          ??<TD width="33%">4</TD>
          ??<TD width="33%">5</TD>
          ??<TD width="33%">6</TD>
          ?</TR>
          ?<TR>
          ??<TD width="33%">one</TD>
          ??<TD width="33%">two</TD>
          ??<TD width="33%">three</TD>
          ?</TR>
          ?<TR>
          ??<TD width="33%">four</TD>
          ??<TD width="33%">five</TD>
          ??<TD width="33%">six</TD>
          ?</TR>??
          ??? <TR class="TrFoot">
          ??<TD colspan="3" align="center" id="no_editer">
          ???<INPUT type="button" class="bt" value="開始編輯" onClick="editStart()" onMouseOver="showTip()" onMouseMove="showTip()" onMouseOut="editTip.style.visibility = 'hidden';">
          ??</TD>
          ?</TR>?
          </TABLE>
          </BODY>
          <DIV id="editTip">請單擊某個單元格進行編輯!</DIV>
          </HTML>

          ?
          責任編輯: 嵐·LEN

          - 作者: wokankan 2005年03月23日, 星期三 17:42  回復(0) |  引用(0)加入博采

          JavaScript通用庫

          JavaScript在WEB編程中能起到很大的作用,將一些常用的功能寫成JavaScript類庫。

          將下面代碼保存為Common.js

          類庫功能:

          1.Trim(str)--去除字符串兩邊的空格

          2.XMLEncode(str)--對字符串進行XML編碼

          3.ShowLabel(str,str)--鼠標提示功能(顯示字符,提示字符)

          可以設置顯示的提示的文字的字體、顏色、大小以及提示的背景顏色、邊框等

          4.IsEmpty(obj)--驗證輸入框是否為空

          5.IsInt(objStr,sign,zero)--驗證是否為整數,正整數,負整數,以及是否包括零

          6.IsFloat(objStr,sign,zero)--驗證是否為浮點數,正浮點,負浮點,以及是否包括零

          7.IsEnLetter(objStr,size)--驗證是否為26個字母,大寫小

          源代碼如下:

          /*

          ?????? 名字:Common.js

          ?????? 功能:通用JavaScript腳本函數庫

          ?????? 包括:

          ???????????????????? 1.Trim(str)--去除字符串兩邊的空格

          ???????????????????? 2.XMLEncode(str)--對字符串進行XML編碼

          ??????????? 3.ShowLabel(str,str)--鼠標提示功能(顯示字符,提示字符)

          ???????????????????? 4.IsEmpty(obj)--驗證輸入框是否為空

          ???????????????????? 5.IsInt(objStr,sign,zero)--驗證是否為整數

          ???????????????????? 6.IsFloat(objStr,sign,zero)--驗證是否為浮點數

          ???????????????????? 7.IsEnLetter(objStr,size)--驗證是否為26個字母

          ??? 作者:申旺

          ??? 日期:2004/04/14

          */

          /*

          ==================================================================

          字符串操作

          Trim(string):去除字符串兩邊的空格

          ==================================================================

          */

          /*

          ==================================================================

          LTrim(string):去除左邊的空格

          ==================================================================

          */

          function LTrim(str)

          {

          ??? var whitespace = new String(" \t\n\r");

          ??? var s = new String(str);

          ???

          ??? if (whitespace.indexOf(s.charAt(0)) != -1)

          ??? {

          ??????? var j=0, i = s.length;

          ??? ????while (j < i && whitespace.indexOf(s.charAt(j)) != -1)

          ??????? {

          ??????????? j++;

          ??????? }

          ??????? s = s.substring(j, i);

          ??? }

          ??? return s;

          }

          /*

          ==================================================================

          RTrim(string):去除右邊的空格

          ==================================================================

          */

          function RTrim(str)

          {

          ??? var whitespace = new String(" \t\n\r");

          ??? var s = new String(str);

          ??? if (whitespace.indexOf(s.charAt(s.length-1)) != -1)

          ??? {

          ??????? var i = s.length - 1;

          ??????? while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)

          ??????? {

          ??????????? i--;

          ??????? }

          ??????? s = s.substring(0, i+1);

          ??? }

          ??? return s;

          }

          /*

          ==================================================================

          Trim(string):去除前后空格

          ==================================================================

          */

          function Trim(str)

          {

          ??? return RTrim(LTrim(str));

          }

          /*

          ================================================================================

          XMLEncode(string):對字符串進行XML編碼

          ================================================================================

          */

          function XMLEncode(str)

          {

          ?????? str=Trim(str);

          ?????? str=str.replace("&","&amp;");

          ?????? str=str.replace("<","&lt;");

          ?????? str=str.replace(">","&gt;");

          ?????? str=str.replace("'","&apos;");

          ?????? str=str.replace("\"","&quot;");

          ?????? return str;

          }

          /*

          ================================================================================

          驗證類函數

          ================================================================================

          */

          function IsEmpty(obj)

          {

          ??? obj=document.getElementsByName(obj).item(0);

          ??? if(Trim(obj.value)=="")

          ??? {

          ??????? alert("字段不能為空。");???????

          ??????? if(obj.disabled==false && obj.readOnly==false)

          ??????? {

          ??????????? obj.focus();

          ??????? }

          ??? }

          }

          /*

          IsInt(string,string,int or string):(測試字符串,+ or - or empty,empty or 0)

          功能:判斷是否為整數、正整數、負整數、正整數+0、負整數+0

          */

          function IsInt(objStr,sign,zero)

          {

          ??? var reg;???

          ??? var bolzero;???

          ???

          ??? if(Trim(objStr)=="")

          ??? {

          ??????? return false;

          ??? }

          ??? else

          ??? {

          ??????? objStr=objStr.toString();

          ??? }???

          ???

          ??? if((sign==null)||(Trim(sign)==""))

          ??? {

          ??????? sign="+-";

          ??? }

          ???

          ??? if((zero==null)||(Trim(zero)==""))

          ??? {

          ??????? bolzero=false;

          ??? }

          ??? else

          ??? {

          ??????? zero=zero.toString();

          ??????? if(zero=="0")

          ??????? {

          ??????????? bolzero=true;

          ??????? }

          ??????? else

          ??????? {

          ??????????? alert("檢查是否包含0參數,只可為(空、0)");

          ??????? }

          ??? }

          ???

          ??? switch(sign)

          ??? {

          ??????? case "+-":

          ??????????? //整數

          ??????????? reg=/(^-?|^\+?)\d+$/;???????????

          ??????????? break;

          ??????? case "+":

          ??????????? if(!bolzero)??????????

          ??????????? {

          ??????????????? //正整數

          ??????????????? reg=/^\+?[0-9]*[1-9][0-9]*$/;

          ??????????? }

          ??????????? else

          ??????????? {

          ??????????????? //正整數+0

          ??????????????? //reg=/^\+?\d+$/;

          ??????????????? reg=/^\+?[0-9]*[0-9][0-9]*$/;

          ??????????? }

          ??????????? break;

          ??????? case "-":

          ??????? ????if(!bolzero)

          ??????????? {

          ??????????????? //負整數

          ??????????????? reg=/^-[0-9]*[1-9][0-9]*$/;

          ??????????? }

          ??????????? else

          ??????????? {

          ??????????????? //負整數+0

          ??????????????? //reg=/^-\d+$/;

          ??????????????? reg=/^-[0-9]*[0-9][0-9]*$/;

          ??????????? } ???????????

          ??????????? break;

          ??????? default:

          ??????????? alert("檢查符號參數,只可為(空、+、-)");

          ??????????? return false;

          ??????????? break;

          ??? }

          ???

          ??? var r=objStr.match(reg);

          ??? if(r==null)

          ??? {

          ??????? return false;

          ??? }

          ??? else

          ??? {???????

          ??????? return true;????

          ??? }

          }

          /*

          IsFloat(string,string,int or string):(測試字符串,+ or - or empty,empty or 0)

          功能:判斷是否為浮點數、正浮點數、負浮點數、正浮點數+0、負浮點數+0

          */

          function IsFloat(objStr,sign,zero)

          {

          ??? var reg;???

          ??? var bolzero;???

          ???

          ??? if(Trim(objStr)=="")

          ??? {

          ????? ??return false;

          ??? }

          ??? else

          ??? {

          ??????? objStr=objStr.toString();

          ??? }???

          ???

          ??? if((sign==null)||(Trim(sign)==""))

          ??? {

          ??????? sign="+-";

          ??? }

          ???

          ??? if((zero==null)||(Trim(zero)==""))

          ??? {

          ??????? bolzero=false;

          ??? }

          ??? else

          ??? {

          ????? ??zero=zero.toString();

          ??????? if(zero=="0")

          ??????? {

          ??????????? bolzero=true;

          ??????? }

          ??????? else

          ??????? {

          ??????????? alert("檢查是否包含0參數,只可為(空、0)");

          ??????? }

          ??? }

          ???

          ??? switch(sign)

          ??? {

          ??????? case "+-":

          ??????????? //浮點數

          ??????????? reg=/^((-?|\+?)\d+)(\.\d+)?$/;

          ??????????? break;

          ??????? case "+":

          ??????????? if(!bolzero)??????????

          ??????????? {

          ??????????????? //正浮點數

          ??????????????? reg=/^\+?(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;

          ??????????? }

          ??????????? else

          ??????????? {

          ??????????????? //正浮點數+0

          ??????????????? reg=/^\+?\d+(\.\d+)?$/;

          ??????????? }

          ??????????? break;

          ????? ??case "-":

          ??????????? if(!bolzero)

          ??????????? {

          ??????????????? //負浮點數

          ??????????????? reg=/^-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;

          ??????????? }

          ??????????? else

          ??????????? {

          ??????????????? //負浮點數+0

          ??????? ????????reg=/^((-\d+(\.\d+)?)|(0+(\.0+)?))$/;

          ??????????? }???????????

          ??????????? break;

          ??????? default:

          ??????????? alert("檢查符號參數,只可為(空、+、-)");

          ??????????? return false;

          ??????????? break;

          ??? }

          ???

          ??? var r=objStr.match(reg);

          ??? if(r==null)

          ??? {

          ??????? return false;

          ??? }

          ??? else

          ??? {???????

          ??????? return true;????

          ??? }

          }



          - 作者: wokankan 2005年03月16日, 星期三 20:20  回復(0) |  引用(0)加入博采

          How to avoid automatically submitting from hitting "enter"
          ?
          ??? When there is only one text field and it has focus when you press Enter, the form is automatically submitted. That is even if there is no submit buttons, even with normal button, it will cause the form to be submitted.
          ??? As you already known , if there are more than one text field in a form, press Enter in any text field will not cause the form to be?submitted.
          ?? So the solution is to have a dummy field. But of course, the dummy field must not be visible to the user. If you make it as hidden field (<input type="hidden" />), the form will still be submitted. But if you make a normal text field and set its CSS display to none, the form will not be submitted.
          <input type="text" name="dummy" style="display:none" />
          Arthur

          - 作者: wokankan 2005年03月15日, 星期二 11:16  回復(0) |  引用(0)加入博采

          Javascript: 動態添加列表框內容
          <HTML>
          <HEAD>
          <TITLE> 測試Select</TITLE>
          <script>
          ?function addItem()
          ?{
          ??var txt=document.all("txt").value;??
          ??if(txt!="")
          ??{
          ??document.myForm.mySelect.length++;??
          ??document.myForm.mySelect.options[document.myForm.mySelect.length - 1].text=txt;
          ??document.myForm.mySelect.options[document.myForm.mySelect.length - 1].value =document.myForm.mySelect.length;
          ??
          ??}
          ??else
          ??{
          ???alert("請填寫內容");
          ??}
          ?}
          </script>
          </HEAD>

          <BODY>
          <form name="myForm">
          ?<SELECT NAME="mySelect">
          ?<option value="1">item1</option>
          ?
          ?</SELECT></form>

          ?內容:<input type="text" size=20 name="txt" id="txt"><br>
          ?<input type="button" name="addBtn" value="添加內容" onClick="addItem();">
          ?

          </BODY>
          </HTML>

          posted on 2006-09-17 01:07 燙茶杯 閱讀(492) 評論(0)  編輯  收藏 所屬分類: Js

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          <2006年9月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          學習java有用地址

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 金塔县| 高雄县| 台南县| 乐亭县| 嘉兴市| 祁阳县| 汕尾市| 榆林市| 苗栗县| 忻州市| 仙桃市| 宜宾县| 拜城县| 元氏县| 临城县| 墨江| 兴城市| 宁蒗| 乐平市| 体育| 吉林市| 霸州市| 华阴市| 浠水县| 林甸县| 鄯善县| 竹山县| 汝阳县| 台北市| 乌鲁木齐市| 高州市| 铜梁县| 舒兰市| 遂平县| 阿克苏市| 黑龙江省| 浦县| 独山县| 临西县| 克山县| 海城市|