js脚本精粹

  一直在做项目,天天忙到深夜,最近稍有空闲,写了个通用js脚本,如果在项目中应用的话,可能会减少不少页面缺陷。脚本大致包括几个方面:

1、通用校验方法:可以设定若干通用类型(如数字、金额、文本等),根据特定类型自动校验、统一提示信息、自动对齐、自动设置长度等。
2、自动获取页面初始焦点和回车切换焦点
3、通用关联日期的计算方法(根据某个日期计算若干期间后的新日期)
4、页面div拖拽方法
 
以下附有测试文件,可供参考:

  1. <HTML>
  2. <head>
  3. <style>
  4. body{font-family:Verdana;font-size:11px;color:#333;}
  5. #win1{[position:absolute;left:100;top:100;width:50px;height:50px;border:1px solid #000;}
  6. .title{width:100%;height:18px;color:#fff;cursor:hand;} 
  7.  </style>
  8. <SCRIPT language="javascript">
  9. var move=false
  10. function StartDrag(obj)                       
  11. {
  12.  if(event.button==1&&event.srcElement.tagName.toUpperCase()=="DIV")
  13.  {
  14.   obj.setCapture();
  15.   obj.style.background="#999";
  16.   move=true;
  17.   } 
  18. }
  19. function Drag(obj)                   
  20. {
  21.  if(move)
  22.  {
  23.   var oldwin=obj.parentNode;
  24.   oldwin.style.left=event.clientX-50;
  25.   oldwin.style.top=event.clientY-10;
  26.  }
  27.  }
  28. function StopDrag(obj)
  29. {
  30.   obj.style.background="";
  31.   obj.releaseCapture();
  32.   move=false;
  33.   } 
  34. /**
  35.  * 通用单输入框校验方法
  36.  * @param ids  输入框的id值,同时也是提示信息中输入框的名称
  37.  * @param type   校验方式
  38.  */
  39. function checkValid(ids,type)
  40. {
  41.  var tempid;
  42.  tempiddocument.getElementById(ids);
  43. var values=Trim(tempid.value);
  44. if (values=='')
  45.  return;
  46. tempid.value=values;
  47. if ((type=='amt') || (type=='int') || (type=='float') || (type=='positive'))
  48. {
  49.  //去掉前置的0
  50.  var temp='';
  51.  for (i=0;i<values.length-1 ;i++)
  52.  {
  53.   if ((values.charAt(i)=='0') && (values.charAt(i+1)!='.') && (temp=='')) 
  54.   {
  55.   }
  56.   else
  57.    temptemp=temp+values.charAt(i);
  58.  }
  59.  values=temp+values.charAt(i);
  60.  tempid.value=values;
  61. }
  62. if (type=='amt')
  63. {
  64.   if (checkAmount(values,ids))
  65.   {
  66.    tempid.value=formatAmount(reverseFormatAmount(values));
  67. }
  68.   return; 
  69. }
  70. if (type=='int')
  71. {
  72.   if (!isInt(values) || (values.substring(0,2)=='-0') || (values=='-'))
  73.   {
  74.    alert("/""+ids+"/""+"应该为整数,请重新录入" );
  75.    
  76.    tempid.select();
  77.   }
  78.   return; 
  79. }
  80. if (type=='positive')
  81. {
  82.   if ((!isInt(values)) || (values<=0) || (values== '-'))
  83.   {
  84.    alert("/""+ids+"/""+"应该为正整数,请重新录入" );
  85.    
  86.    tempid.select();
  87.   }
  88.   return; 
  89. }
  90. if (type=='float')
  91.   if (!isFloat(values) || (values=='.') || (values=='-'))
  92.   {
  93.    alert("/""+ids+"/""+"应该为数值,请重新录入" );
  94.    tempid.select();
  95.    return; 
  96.   } 
  97.   for (i=0;i<values.length ;i++ )
  98.   {
  99.    if (values.charAt(i)==',')
  100.    {
  101.     alert("/""+ids+"/""+"应该为数值,请重新录入" );
  102.     tempid.select();
  103.     break;
  104.    }
  105.   }
  106.   if (values.charAt(0)=='.')
  107.   {
  108.    values='0'+values;
  109.    tempid.value=values;
  110.   }
  111.   if (values.charAt(values.length-1)=='.')
  112.   {
  113.    valuesvalues=values.substring(0,values.length-1);
  114.    tempid.value=values;
  115.   }
  116.   return; 
  117. }
  118. if (type=='date')
  119. {
  120.   if (!isDate(values))
  121.   {
  122.    alert("/""+ids+"/""+"应该为日期格式,请重新录入" );
  123.    
  124.    tempid.select();
  125.   }
  126.   return; 
  127. }
  128. if (type=='email')
  129. {
  130.   if (!isEmail(values))
  131.   {
  132.    alert("/""+ids+"/""+"不是有效的电子邮件格式,请重新录入" );
  133.    tempid.select();
  134.   }
  135.   return; 
  136. }
  137. if (type=='fax')
  138. {
  139.   if (!isFax(values))
  140.   {
  141.    alert("/""+ids+"/""+"不是有效的传真格式,请重新录入" );
  142.    tempid.select();
  143.   }
  144.   return; 
  145. }
  146. if (type=='norm')
  147. {
  148.   if (!isNorm(values))
  149.   {
  150.    alert("/""+ids+"/""+"含有特殊字符,请重新录入" );
  151.    tempid.select();
  152.   }
  153.   return; 
  154. }
  155. if (type=='need')
  156. {
  157.   if (isNeed(values))
  158.   {
  159.    alert("/""+ids+"/""+"不能为空,请重新录入" );
  160.    tempid.select();
  161.   }
  162.   return; 
  163. }
  164. }
  165. /**
  166.  * 校验金额
  167.  * @param d_input   需要校验的输入框的值
  168.  * @param d_str    提示信息中输入框的名称
  169.  */
  170. function checkAmount(d_input,d_str)
  171. {
  172.  var id = document.getElementById(d_str);
  173.  if (!isFloat(reverseFormatAmount(d_input)) || (d_input=="-") || (d_input=="."))
  174.     {
  175.   alert("/""+d_str+"/""+"应该为数值,请重新录入" );
  176.   id.select();
  177.   return (false);
  178.     }
  179.     if  (reverseFormatAmount(d_input) < 0.01
  180. {
  181. alert("/""+d_str+"/""+"的值应该大于0" );
  182.   id.select();
  183.   return (false);
  184.  }
  185.    if  (reverseFormatAmount(d_input) > 1000000000000 )
  186.  {
  187.   alert("/""+d_str+"/""+"的值应该小于1,000,000,000,000" );
  188.   id.select();
  189.   return (false);
  190.  }
  191.  return true;
  192. }
  193. /**
  194.  * 反向格式化金额
  195.  * @param strData  需要格式化的数据
  196.  * @return    返回反格式化的金额
  197.  */ 
  198.  function reverseFormatAmount (strData)
  199.  {
  200.   var i,strTemp;
  201.   //去掉所有的"," 
  202.   strTemp=new String(strData);
  203.   strData="";
  204.   for(i=0;i<strTemp.length;i++)
  205.   {
  206.    var cData;
  207.    cData=strTemp.charAt(i);
  208.    if (cData!=",")
  209.    {
  210.     strDatastrData=strData+cData;
  211.    }
  212.   }
  213.   return strData;
  214.  }
  215. /**
  216.  * 格式化金额
  217.  * @param strData   需要格式化的数据
  218.  * @return    返回格式化的金额
  219.  */
  220.  function formatAmount(strData)
  221.  {
  222.    if(isInnerFloat(strData))
  223.   {
  224.    if(strData!="")
  225.    {
  226.    var i,strTemp;
  227.    //去掉所有的","
  228.    strTemp=new String(strData);
  229.    strData="";
  230. if (strTemp.charAt(0)==".")
  231.     strTemp="0"+strTemp;
  232.    for(i=0;i<strTemp.length;i++)
  233.    {
  234.     var cData;
  235.     cData=strTemp.charAt(i);
  236.     if (cData!=",")
  237.     {
  238.      strDatastrData=strData+cData;
  239.     }
  240.    }
  241.    //将小数点前和后的数据分别取出来
  242.     var nPoint;
  243.     nPoint=strData.indexOf(".");
  244.     var strFront=strData,strEnd="";
  245.     if(nPoint!=-1)
  246.     {
  247.      strFront=strData.substring(0,nPoint);
  248.      strEnd=strData.substring(nPoint+1,strData.length);
  249.     }
  250.    //小数点前面的数据加","
  251.    strTemp=new String(strFront);
  252.    var bHaveMinus=false;
  253.    if(strFront.substring(0,1)=="-")
  254.    {
  255.     bHaveMinus=true;
  256.     strTempstrTemp=strTemp.substring(1,strTemp.length);
  257.    }
  258.    strFront="";
  259.    var nNum;
  260.    nNum=0;
  261.    for(i=strTemp.length-1;i>=0;i--)
  262.    {
  263.     if(nNum==3)
  264.     {
  265.      strFront=","+strFront ;
  266.      nNum=0;
  267.     }
  268.     nNum++;
  269.     var cData;
  270.     cData=strTemp.charAt(i);
  271.     strFront=cData+strFront;
  272.    }
  273.    if(bHaveMinus)
  274.    {
  275.     strFront="-" + strFront;
  276.    }
  277.    
  278.    //补或者截小数点后面的值,保持两位
  279.     if(strEnd.length>2)
  280.     {
  281.      strEndstrEnd=strEnd.substring(0,2);
  282.     }
  283.     else
  284.     {
  285.      if(strEnd.length==1)
  286.      {
  287.       strEndstrEnd=strEnd+ "0";
  288.      }
  289.      else
  290.      {
  291.       if(strEnd.length==0)
  292.       {
  293.        strEnd="00";
  294.       }
  295.      }
  296.     }
  297.     strData=strFront+"." + strEnd;
  298.    }
  299.  }
  300.   return strData;
  301.  }
  302. /**
  303.  * 是否是float型
  304.  * @param strData   需要校验的数据
  305.  * @return    返回检验结果
  306.  */
  307. function isInnerFloat( d_float)
  308. {
  309.  if(isNaN(parseFloat(d_float)))
  310.    return false;
  311.  else
  312.    return true;
  313. }
  314. /**
  315.  * 是否是浮点型
  316.  * @param d_float  需要校验的数据
  317.  * @return    返回检验结果
  318.  */
  319. function isFloat( d_float)
  320. {
  321.   var checkOK = "0123456789-,.";
  322.   var checkStr = d_float;
  323.   var allValid = true;
  324.   var decPoints = 0;
  325.   var allNum = "";
  326.   for (i = 0;  i < checkStr.length;  i++)
  327.   {
  328.    ch = checkStr.charAt(i);
  329.    for (j = 0;  j < checkOK.length;  j++)
  330.    if (ch == checkOK.charAt(j))
  331.    break;
  332.    if (j == checkOK.length)
  333.    {
  334.     allValid = false;
  335.     break;
  336.    }
  337.    if ( (ch == '-') && (i!=0) )   
  338.    {
  339.     allValid = false;
  340.     break;
  341.    }   
  342.    if (ch != ",")
  343.     allNum += ch;    
  344.    if (ch == ".")
  345.     decPoints += 1;    
  346.   }    
  347.   if ( decPoints > 1 )
  348.   {
  349.    allValid = false;
  350.   }
  351.   return (allValid)
  352. }
  353. /**
  354. * 校验是否Int整型类型
  355. *
  356. */
  357. function isInt( d_int)
  358. {
  359.  var checkOK = "0123456789-";
  360.  var checkStr = d_int;
  361.  var allValid = true;
  362.  var decPoints = 0;
  363.  var allNum = "";
  364.  for (i = 0;  i < checkStr.length;  i++)
  365.  {
  366.   ch = checkStr.charAt(i);
  367. if ((i>0) && (ch=='-'))
  368.   {
  369.    allValid = false;
  370.    break;
  371.   }
  372.   for (j = 0;  j < checkOK.length;  j++)
  373.   {
  374.    if (ch == checkOK.charAt(j))
  375.    {
  376.     break;
  377.    }
  378.   }
  379.   if (j == checkOK.length)
  380.   {
  381.    allValid = false;
  382.    break;
  383.   }
  384.   if (ch != ",")
  385.   {
  386.    allNum += ch;
  387.   }
  388.  }
  389.  return (allValid)
  390. }
  391. /**
  392. * 校验Email
  393. */
  394. function isEmail( d_email)
  395. {  
  396.   var checkStr = d_email;
  397.   var emailtag = false;
  398.   var emaildot=0;
  399.   var emailat=0;
  400.   var atseq=0;
  401.   var dotseq=0;
  402.   if (checkStr.length<7) return (false);  
  403.   for (i = 0;  i < checkStr.length;  i++)
  404.   {
  405.    ch = checkStr.charAt(i);
  406.    if (ch=='@') {emailat++; atseq=i;}
  407.    if (ch=='.') {emaildot++; dotseq=i;}
  408.   }    
  409.   if (( emailat==1 ) && (emaildot==1) && (atseq>0) && (dotseq>atseq+1) ) 
  410.   {
  411.   emailtag = true;
  412.   }
  413.   return (emailtag);   
  414. }
  415. /**
  416. * 校验传真
  417. */
  418. function isFax( d_int)
  419. {
  420.   var checkOK = "0123456789 -()";
  421.   var checkStr = d_int;
  422.   var allValid = true;
  423.   var decPoints = 0;
  424.   var allNum = "";
  425.   for (i = 0;  i < checkStr.length;  i++)
  426.   {
  427.    ch = checkStr.charAt(i);
  428.    for (j = 0;  j < checkOK.length;  j++)
  429.    if (ch == checkOK.charAt(j))
  430.    break;
  431.    if (j == checkOK.length)
  432.    {
  433.     allValid = false;
  434.     break;
  435.    }
  436.    if (ch != ",");
  437.    allNum += ch;
  438.   }
  439.   return (allValid)
  440. }
  441. /**
  442. * 校验特殊字符
  443. */ 
  444. function isNorm(d_string )
  445. {
  446.  var i;
  447.  var specialChar = "%&*_|<>'";
  448.     var allValid = false;
  449.     for (i = 0; i < d_string.length; i++)
  450.     {   
  451.         var c = d_string.charAt(i);
  452.         if (specialChar.indexOf(c) >= 0) allValid = true;
  453.     }
  454.     return (!allValid);
  455. }
  456. /**
  457. * 校验必输项
  458. */ 
  459. function isNeed( temp )
  460. {
  461.  if (temp== '')
  462.   return true;
  463.  else
  464.   return false;
  465. }
  466. /*
  467. ==================================================================
  468. LTrim(string):去除左边的空格
  469. ==================================================================
  470. */
  471. function LTrim(str)
  472. {
  473.     var whitespace = new String(" /t/n/r");
  474.     var s = new String(str);
  475.    if (whitespace.indexOf(s.charAt(0)) != -1)
  476.     {
  477.         var j=0i = s.length;
  478.         while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
  479.         {
  480.             j++;
  481.         }
  482.         ss = s.substring(j, i);
  483.     }
  484.     return s;
  485. }
  486. /*
  487. ==================================================================
  488. RTrim(string):去除右边的空格
  489. ==================================================================
  490. */
  491. function RTrim(str)
  492. {
  493.     var whitespace = new String(" /t/n/r");
  494.     var s = new String(str);
  495.     if (whitespace.indexOf(s.charAt(s.length-1)) != -1)
  496.     {
  497.         var i = s.length - 1;
  498.         while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
  499.         {
  500.             i--;
  501.         }
  502.         ss = s.substring(0, i+1);
  503.     }
  504.     return s;
  505. }
  506. /*
  507. ==================================================================
  508. Trim(string):去除前后空格
  509. ==================================================================
  510. */
  511. function Trim(str)
  512. {
  513.     return RTrim(LTrim(str));
  514. }
  515. /**
  516. * 校验日期
  517. */
  518. function isDate(datestr)
  519. {  
  520.  var lthdatestr
  521.  if (datestr != "")
  522.   lthdatestr= datestr.length ;
  523.  else
  524.   lthdatestr=0;
  525.  var tmpy="";
  526.  var tmpm="";
  527.  var tmpd="";
  528.  var status;
  529.  status=0;
  530.  if ( lthdatestr== 0)
  531.   return 0
  532.  for (i=0;i<lthdatestr;i++)
  533.  { if (datestr.charAt(i)== '-')
  534.   {
  535.    status++;
  536.   }
  537.   if (status>2)
  538.   {
  539.    return 0;
  540.   }
  541.   if ((status==0) && (datestr.charAt(i)!='-'))
  542.   {
  543.    tmpytmpy=tmpy+datestr.charAt(i)
  544.   }
  545.   if ((status==1) && (datestr.charAt(i)!='-'))
  546.   {
  547.    tmpmtmpm=tmpm+datestr.charAt(i)
  548.   }
  549.   if ((status==2) && (datestr.charAt(i)!='-'))
  550.   {
  551.    tmpdtmpd=tmpd+datestr.charAt(i)
  552.   }
  553.  }
  554.  year=new String (tmpy);
  555.  month=new String (tmpm);
  556.  day=new String (tmpd)
  557.  if ((tmpy.length!=4) || (tmpm.length>2) || (tmpd.length>2))
  558.  {
  559.   return 0;
  560.  }
  561.  if (!((1<=month) && (12>=month) && (31>=day) && (1<=day)) )
  562.  {
  563.   return 0;
  564.  }
  565.  if (!((year % 4)==0) && (month==2) && (day==29))
  566.  {
  567.   return 0;
  568.  }
  569.  if ((month<=7) && ((month % 2)==0) && (day>=31))
  570.  {
  571.   return 0; 
  572.  }
  573.  if ((month>=8) && ((month % 2)==1) && (day>=31))
  574.  {
  575.   return 0;
  576.  }
  577.  if ((month==2) && (day==30))
  578.  {
  579.   return 0;
  580.  }
  581.  return 1;
  582. }
  583. /**
  584.  * 通用模式化输入框的方法
  585. */
  586. function setClass()
  587. {
  588.  var alls =document.getElementsByTagName("input");
  589.  var temp;
  590.  for (i=0;i<alls.length ;i++ )
  591.  {
  592.   temp=alls[i];
  593.   if (temp.getAttribute("name").substring(0,3)=="txt")
  594.   {
  595.    temp.setAttribute("size",20);
  596.    temp.setAttribute("maxLength",50);
  597.    temp.style.textAlign="left";
  598.   }
  599.   if (temp.getAttribute("name").substring(0,3)=="num")
  600.   {
  601.    temp.setAttribute("size",20);
  602.    temp.setAttribute("maxLength",20);
  603.    temp.style.textAlign="left";
  604.   }
  605.   if (temp.getAttribute("name").substring(0,3)=="amt")
  606.   {
  607.    temp.setAttribute("size",20);
  608.    temp.setAttribute("maxLength",15);
  609.    temp.style.textAlign="right";
  610.   }
  611.   if (temp.getAttribute("name").substring(0,3)=="dat")
  612.   {
  613.    temp.setAttribute("size",20);
  614.    temp.setAttribute("maxLength",20);
  615.    temp.style.textAlign="left";
  616.   }
  617.   if (temp.getAttribute("name").substring(0,3)=="int")
  618.   {
  619.    temp.setAttribute("size",20);
  620.    temp.setAttribute("maxLength",20);
  621.    temp.style.textAlign="left";
  622.   }
  623.   if (temp.getAttribute("name").substring(0,3)=="pos")
  624.   {
  625.    temp.setAttribute("size",20);
  626.    temp.setAttribute("maxLength",20);
  627.    temp.style.textAlign="left";
  628.   }
  629.   if (temp.getAttribute("name").substring(0,3)=="ema")
  630.   {
  631.    temp.setAttribute("size",20);
  632.    temp.setAttribute("maxLength",20);
  633.    temp.style.textAlign="left";
  634.   }
  635.   if (temp.getAttribute("name").substring(0,3)=="fax")
  636.   {
  637.    temp.setAttribute("size",20);
  638.    temp.setAttribute("maxLength",20);
  639.    temp.style.textAlign="left";
  640.   }
  641.  } 
  642.  setFocus();
  643. }
  644. function check (obj)
  645. {
  646. var temp=obj;
  647. var ids=temp.id;
  648. var values=temp.value;
  649. var type=temp.name.substring(0,3);
  650. if (type=='txt')
  651. {
  652.  type='norm';
  653. }
  654. if (type=='num')
  655. {
  656.  type='float';
  657. }
  658. if (type=='dat')
  659. {
  660.  type='date';
  661. }
  662. if (type=='pos')
  663. {
  664.  type='positive';
  665. }
  666. if (type=='ema')
  667. {
  668.  type='email';
  669. }
  670. checkValid(ids,type);
  671. }
  672. function setFocus()
  673. {
  674.  //页面初始焦点
  675.  for(var i0; i < document.all.length; i++)
  676.   {
  677.    if ((document.all[i].tagName == "INPUT")  && (!document.all[i].readOnly) && (!document.all[i].disabled))
  678.    {
  679.     document.all[i].focus();
  680.     break;
  681.    }
  682.   }
  683. }
  684. //回车键切换焦点
  685. function document.onkeydown()
  686. {
  687.   var e = event.srcElement;
  688.   if (event.keyCode == 13)
  689.   {
  690.  if (e.tagName == "INPUT" && e.type != "button" && e.type != "textarea")
  691.  {
  692.   //find the next input;
  693.   for(var ie.sourceIndex+1; i < document.all.length; i++)
  694.   {
  695.    if (document.all[i].tagName == "INPUT"  && document.all[i].type != "textarea" && (!document.all[i].readOnly) && (!document.all[i].disabled))
  696.    {
  697.     document.all[i].focus();
  698.     break;
  699.    }
  700.   }
  701.  }
  702.   } 
  703. }
  704. function getDateBy(obj,type,method,period)
  705. {
  706.  var tempDate=createDate(obj,type);  //根据变量获取日期
  707.  if (method=='nextday')
  708.  {
  709.   return dateAdd('d', tempDate ,period);
  710.  }
  711.  else if (method=='nextmonth')
  712.  {
  713.   return dateAdd('m', tempDate ,period);
  714.  }
  715.  else if (method=='nextweek')
  716.  {
  717.   return dateAdd('w', tempDate ,period);
  718.  }
  719.  else if (method=='weekend')
  720.  {
  721.   return getWeekend(tempDate,period);
  722.  }
  723.  else if (method=='monthend')
  724.  {
  725.   return getMonthend(tempDate,period);
  726.  }
  727.  else if (method=='friday')
  728.  {
  729.   return getFriday(tempDate,period);
  730.  }
  731.  else if (method=='weekstart')
  732.  {
  733.   return getWeekstart(tempDate,period);
  734.  }
  735.  else if (method=='monthstart')
  736.  {
  737.   return getMonthstart(tempDate,period);
  738.  }
  739. }
  740. function createDate(obj,type)
  741. {
  742.  var temp;
  743.  if (type=='id')
  744.  {
  745.   temp = document.getElementById(obj).value;
  746.   return strToDate(temp);    //字符串转日期
  747.  }
  748.  else if (type=='str')
  749.   {
  750.    return strToDate(obj);
  751.   }
  752.   else
  753.    return obj;  
  754.  }
  755. function strToDate(DateStr)
  756. {
  757.  var converted = Date.parse(DateStr);
  758.   var myDate = new Date(converted);
  759.   if (isNaN(myDate))
  760.   { 
  761.   var arysDateStr.split('-');
  762.   myDate = new Date(arys[0],--arys[1],arys[2]);
  763.   }
  764.  return myDate;
  765. }
  766. function dateAdd(type, dtTmp ,Number)
  767. {
  768.  var temp;
  769.  switch (type) { 
  770.  case 'd' :temp = new Date(Date.parse(dtTmp) + (86400000*Number));
  771.    break;
  772.  case 'w' :temp = new Date(Date.parse(dtTmp) + ((86400000*7)*Number));
  773.    break;
  774.  case 'm' :
  775.   temp = new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate());
  776.   var yeartemp.getFullYear();   //获取年份
  777.   var monthtemp.getMonth()+1;  //获取月份
  778.   var datetemp.getDate();   //获取日期  
  779.   if (dtTmp.getDate()!=date)
  780.   {
  781.    monthmonth=month-1;
  782.    if (month<=0)
  783.    {
  784.     month=12;
  785.     yearyear=year-1;
  786.    }
  787.    date=getDaysOfMonth(year,month);
  788.   } 
  789.   return year+"-"+month+"-"+date;
  790.  }
  791.  var yeartemp.getFullYear();   //获取年份
  792.  var monthtemp.getMonth()+1;  //获取月份
  793.  var datetemp.getDate();   //获取日期  
  794.  return year+"-"+month+"-"+date;
  795. }
  796. function getWeekend(temp,period)
  797. {
  798.  if (temp.getDay()==0)    //正好是周末
  799.  {
  800.   tempstrToDate(dateAdd('w',temp,period-1));
  801.  }
  802.  else
  803.   tempstrToDate(dateAdd('w',temp,period));
  804.  var yeartemp.getFullYear();   //获取年份
  805.  var monthtemp.getMonth()+1;  //获取月份
  806.  var datetemp.getDate();   //获取日期  
  807.  var daytemp.getDay();    //获取星期几 
  808.  var daysOfMonth=getDaysOfMonth(year,month);   //获取当月的天数
  809.  var tempDates=date-day+7;
  810.  if (tempDates>daysOfMonth)
  811.  {
  812.   if (month==12)
  813.   {
  814.    yearyear=year+1;
  815.    month=1;
  816.   }
  817.   else
  818.   {
  819.    monthmonth=month+1;
  820.   }
  821.   date=tempDates-daysOfMonth;
  822.  }
  823.  else
  824.  {
  825.   date=tempDates;
  826.  } 
  827.  return year+"-"+month+"-"+date;
  828. }
  829. function getDaysOfMonth(year,month)
  830. {
  831. var length;
  832. switch(month)
  833. {
  834. case 1:
  835. case 3:
  836. case 5:
  837. case 7:
  838. case 8:
  839. case 10:
  840. case 12:
  841.  length=31;
  842.  break;
  843. case 4:
  844. case 6:
  845. case 9:
  846. case 11:
  847.  length=30;
  848.  break;
  849. case 2:
  850.  if((year%4==0)&&(year%100!=0)||(year%400==0))
  851.   length=29;
  852.  else
  853.   length=28;
  854. }
  855.  return length;   
  856. }
  857. function getMonthend(temp,period)
  858. {
  859.  tempstrToDate(dateAdd('m',temp,period));
  860.  var yeartemp.getFullYear();   //获取年份
  861.  var monthtemp.getMonth()+1;  //获取月份
  862.  var datetemp.getDate();   //获取日期  
  863.  var daysOfMonth=getDaysOfMonth(year,month);   //获取当月的天数
  864.  return year+"-"+month+"-"+daysOfMonth;
  865. }
  866. function getFriday(temp,period)
  867. {
  868.  temp=strToDate(getWeekend(temp,period));
  869.  tempstrToDate(dateAdd('d',temp,-2));
  870.  var yeartemp.getFullYear();   //获取年份
  871.  var monthtemp.getMonth()+1;  //获取月份
  872.  var datetemp.getDate();   //获取日期  
  873.  return year+"-"+month+"-"+date;
  874. }
  875. function getWeekstart(temp,period)
  876. {
  877.  temp=strToDate(getWeekend(temp,period));
  878.  tempstrToDate(dateAdd('d',temp,-6));
  879.  var yeartemp.getFullYear();   //获取年份
  880.  var monthtemp.getMonth()+1;  //获取月份
  881.  var datetemp.getDate();   //获取日期  
  882.  return year+"-"+month+"-"+date;
  883. }
  884. function getMonthstart(temp,period)
  885. {
  886.  tempstrToDate(dateAdd('m',temp,period));
  887.  var yeartemp.getFullYear();   //获取年份
  888.  var monthtemp.getMonth()+1;  //获取月份
  889.  var datetemp.getDate();   //获取日期  
  890.  return year+"-"+month+"-01";
  891. }
  892. function tellmedate(temp)
  893. {
  894.  alert('明天是:'+getDateBy(temp,'date','nextday',1));
  895.  alert('1000天以后是:'+getDateBy(temp,'date','nextday',1000));
  896.  alert('本周末是:'+getDateBy(temp,'date','weekend',0));
  897.  alert('下周一是:'+getDateBy(temp,'date','weekstart',1));
  898. }
  899. function hide()
  900. {
  901.  var temp=document.getElementById('win1');
  902.  temp.style.visibility ='hidden';
  903. }
  904. function show()
  905. {
  906.  var temp=document.getElementById('win1');
  907.  temp.style.visibility ='visible';
  908.  setFocus();
  909. }
  910. function turn()
  911. {
  912.  for(var i0; i < document.all.length; i++)
  913.   {
  914.    if ((document.all[i].tagName == "INPUT")  && (document.all[i].type == "text"))
  915.    {
  916.     document.all[i].value=reverse(document.all[i].value);    
  917.    }
  918.   }
  919. }
  920. function reverse(str){ return str.length>1?reverse(str.substring(1))+str.charAt(0):str;}
  921. </SCRIPT>
  922. </head>
  923. <body onload="setClass();">
  924. <form method="post" name = "form1" action=""  ENCTYPE="multipart/form-data" >
  925. <div id="win1">
  926. <div class="title" onMousedown="StartDrag(this)" onMouseup="StopDrag(this)" onMousemove="Drag(this)" ></div>
  927. <table width="100%" border="0" cellpadding="0" cellspacing="0">
  928. <tr>
  929.  <td>
  930.  <table border="0" width="98%" bgcolor="#0099CC" cellspacing="1" cellpadding="0" align="center">
  931.  <tr>
  932.          <td width="100%" colspan="6" height="19" class="FormTitle"><b>开户申请-新增</b></td>
  933.     </tr>
  934.  <tr>
  935.      <td width="100%" bgcolor="#EFEFEF" align="right">
  936.          <table border="0" width="100%" cellspacing="1" >
  937.          
  938.   
  939.     <tr>
  940.     <td  height="25"> 测试普通文本:</td>
  941.     <td  align="left" nowrap>  <input type="text" name="txtapplyerName"  class="box" id="普通文本" value="" onblur="check(this);" ></td>
  942.     <td></td>
  943.     <td></td>
  944.     </tr>
  945.    </table>
  946.     <hr>
  947.  <table border="0" width="100%" cellspacing="1" >
  948.   <tr>
  949.     <td  height="25" width="18%" nowrap> 测试普通数字:</td>
  950.     <td  align="left" width="32%" nowrap><font color=red>*</font> <input type="text"  id="普通数字" name="numbelongOrgCode"value="" onblur="check(this);" >
  951.     
  952.     </td>
  953.     <td  height="25" width="18%" nowrap> 测试金额:</td>
  954.     <td  align="left" width="32%" nowrap>  <input type="text" name="amtbelongOrgName" id="金额"   value="" onblur="check(this);" ></td>    
  955.   </tr>
  956.   <tr>
  957.     <td  height="25" width="18%" nowrap> 测试普通日期:</td>
  958.     <td  align="left" width="32%" nowrap><font color=red>*</font> <input type="text"  id="普通日期" name="datbankCode"  class="box" value="" onblur="check (this);" >
  959.     
  960.     </td>
  961.     <td  height="25" width="18%" nowrap> 测试整数:</td>
  962.     <td  align="left" width="32%" nowrap>  <input type="text" name="intbankName" class="box" value="" id="整数" onblur="check (this);"></td>    
  963.   </tr>
  964.  </table>
  965.     <hr>
  966. <hr>
  967. <table border="0" width="100%" cellspacing="1" >
  968.   <tr>
  969.     <td width="18%" nowrap> 测试正整数:</td>
  970.     <td width="32%" nowrap> 
  971.       <input id="正整数" name="posaccountProperty1Name" type="text"  class="box"  value=""  onblur="check (this);">
  972.      
  973.    
  974.     </td>
  975.     
  976.     <td width="18%" nowrap> 测试电子邮件:</td>
  977.     <td width="32%" nowrap> 
  978.        <input id="电子邮件" name="emaaccountProperty2Name" type="text"  class="box" value="" onblur="check (this);" >
  979.    
  980.    </td>
  981.   </tr>
  982.   
  983.     
  984.  <tr>
  985.     <td width="18%" nowrap> 测试传真:</td>
  986.     <td width="32%" nowrap> 
  987.        <input id="传真" name="faxaccountProperty2Name" type="text"  class="box" value="" onblur="check (this);" >
  988.    
  989.    </td>
  990.           </tr>
  991.    <tr>
  992.       <td colspan="4" width="82%" height="30" align="right" nowrap>
  993.  <input type="button" value=" 逆 转 " name="eeee" class="button" onclick="turn();">  
  994.   <input type="button" value=" 查看日期 " name="eeee2" class="button" onClick="tellmedate(new Date());">  
  995.       </td>
  996.      </tr> 
  997.   </table>
  998.     </td>
  999.   </tr>
  1000.    </table>
  1001.    </td>
  1002.   </tr>
  1003.  </table></div> 
  1004.  <input type="button" value=" 隐 藏 " name="save" class="button" onClick="hide();">  
  1005.  <input type="button" value=" 显 示 " name="bk" class="button" onClick="show();">  
  1006. </form> 
  1007. </body>
  1008. </html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值