[导入]JS代码--选择日期

None.gif < script language = javascript >
None.gif
var  DS_x,DS_y;
None.gif
None.gif
function  dateSelector()   // 构造dateSelector对象,用来实现一个日历形式的日期输入框。
None.gif
{
None.gif  
var  myDate = new  Date();
None.gif  
this .year = myDate.getFullYear();   // 定义year属性,年份,默认值为当前系统年份。
None.gif
   this .month = myDate.getMonth() + 1 ;   // 定义month属性,月份,默认值为当前系统月份。
None.gif
   this .date = myDate.getDate();   // 定义date属性,日,默认值为当前系统的日。
None.gif
   this .inputName = '';   // 定义inputName属性,即输入框的name,默认值为空。注意:在同一页中出现多个日期输入框,不能有重复的name!
None.gif
   this .display = display;   // 定义display方法,用来显示日期输入框。
None.gif
}
None.gif
None.gif
function  display()   // 定义dateSelector的display方法,它将实现一个日历形式的日期选择框。
None.gif
{
None.gif  
var  week = new  Array('日','一','二','三','四','五','六');
None.gif
None.gif  document.write(
" <style type=text/css> " );
None.gif  document.write(
"   .ds_font td,span  { font: normal 12px 宋体; color: #000000; } " );
None.gif  document.write(
"   .ds_border  { border: 1px solid #000000; cursor: hand; background-color: #DDDDDD } " );
None.gif  document.write(
"   .ds_border2  { border: 1px solid #000000; cursor: hand; background-color: #DDDDDD } " );
None.gif  document.write(
" </style> " );
None.gif
None.gif  document.write(
" <input style='text-align:center;' id='DS_ " + this .inputName + " ' name=' " + this .inputName + " ' value=' " + this .year + " - " + this .month + " - " + this .date + " ' title=双击可进行编缉 οndblclick='this.readOnly=false;this.focus()' οnblur='this.readOnly=true' readonly> " );
None.gif  document.write(
" <button style='width:60px;height:18px;font-size:12px;margin:1px;border:1px solid #A4B3C8;background-color:#DFE7EF;' type=button οnclick=this.nextSibling.style.display='block' οnfοcus=this.blur()>选择日期</button> " );
None.gif
None.gif  document.write(
" <div style='position:absolute;display:none;text-align:center;width:0px;height:0px;overflow:visible' onselectstart='return false;'> " );
None.gif  document.write(
"   <div style='position:absolute;left:-60px;top:20px;width:142px;height:165px;background-color:#F6F6F6;border:1px solid #245B7D;' class=ds_font> " );
None.gif  document.write(
"     <table cellpadding=0 cellspacing=1 width=140 height=20 bgcolor=#CEDAE7 οnmοusedοwn='DS_x=event.x-parentNode.style.pixelLeft;DS_y=event.y-parentNode.style.pixelTop;setCapture();' οnmοuseup='releaseCapture();' οnmοusemοve='dsMove(this.parentNode)' style='cursor:move;'> " );
None.gif  document.write(
"       <tr align=center> " );
None.gif  document.write(
"         <td width=12% οnmοuseοver=this.className='ds_border' οnmοuseοut=this.className='' οnclick=subYear(this) title='减小年份'>&lt;&lt;</td> " );
None.gif  document.write(
"         <td width=12% οnmοuseοver=this.className='ds_border' οnmοuseοut=this.className='' οnclick=subMonth(this) title='减小月份'>&lt;</td> " );
None.gif  document.write(
"         <td width=52%><b> " + this .year + " </b><b>年</b><b> " + this .month + " </b><b>月</b></td> " );
None.gif  document.write(
"         <td width=12% οnmοuseοver=this.className='ds_border' οnmοuseοut=this.className='' οnclick=addMonth(this) title='增加月份'>&gt;</td> " );
None.gif  document.write(
"         <td width=12% οnmοuseοver=this.className='ds_border' οnmοuseοut=this.className='' οnclick=addYear(this) title='增加年份'>&gt;&gt;</td> " );
None.gif  document.write(
"       </tr> " );
None.gif  document.write(
"     </table> " );
None.gif
None.gif  document.write(
"     <table cellpadding=0 cellspacing=0 width=140 height=20 οnmοusedοwn='DS_x=event.x-parentNode.style.pixelLeft;DS_y=event.y-parentNode.style.pixelTop;setCapture();' οnmοuseup='releaseCapture();' οnmοusemοve='dsMove(this.parentNode)' style='cursor:move;'> " );
None.gif  document.write(
"       <tr align=center> " );
None.gif  
for (i = 0 ;i < 7 ;i ++ )
None.gif    document.write(
"       <td> " + week[i] + " </td> " );
None.gif  document.write(
"       </tr> " );
None.gif  document.write(
"     </table> " );
None.gif
None.gif  document.write(
"     <table cellpadding=0 cellspacing=2 width=140 bgcolor=#EEEEEE> " );
None.gif  
for (i = 0 ;i < 6 ;i ++ )
None.gif  {
None.gif    document.write(
"     <tr align=center> " );
None.gif    
for (j = 0 ;j < 7 ;j ++ )
None.gif      document.write(
"     <td width=10% height=16 οnmοuseοver=if(this.innerText!=''&&this.className!='ds_border2')this.className='ds_border' οnmοuseοut=if(this.className!='ds_border2')this.className='' οnclick=getValue(this,document.all('DS_ " + this .inputName + " '))></td> " );
None.gif    document.write(
"     </tr> " );
None.gif  }
None.gif  document.write(
"     </table> " );
None.gif
None.gif  document.write(
"     <span style=cursor:hand οnclick=this.parentNode.parentNode.style.display='none'>【关闭】</span> " );
None.gif  document.write(
"   </div> " );
None.gif  document.write(
" </div> " );
None.gif
None.gif  dateShow(document.all(
" DS_ " + this .inputName).nextSibling.nextSibling.childNodes[ 0 ].childNodes[ 2 ], this .year, this .month)
None.gif}
None.gif
None.gif
function  subYear(obj)   // 减小年份
None.gif
{
None.gif  
var  myObj = obj.parentNode.parentNode.parentNode.cells[ 2 ].childNodes;
None.gif  myObj[
0 ].innerHTML = eval(myObj[ 0 ].innerHTML) - 1 ;
None.gif  dateShow(obj.parentNode.parentNode.parentNode.nextSibling.nextSibling,eval(myObj[
0 ].innerHTML),eval(myObj[ 2 ].innerHTML))
None.gif}
None.gif
None.gif
function  addYear(obj)   // 增加年份
None.gif
{
None.gif  
var  myObj = obj.parentNode.parentNode.parentNode.cells[ 2 ].childNodes;
None.gif  myObj[
0 ].innerHTML = eval(myObj[ 0 ].innerHTML) + 1 ;
None.gif  dateShow(obj.parentNode.parentNode.parentNode.nextSibling.nextSibling,eval(myObj[
0 ].innerHTML),eval(myObj[ 2 ].innerHTML))
None.gif}
None.gif
None.gif
function  subMonth(obj)   // 减小月份
None.gif
{
None.gif  
var  myObj = obj.parentNode.parentNode.parentNode.cells[ 2 ].childNodes;
None.gif  
var  month = eval(myObj[ 2 ].innerHTML) - 1 ;
None.gif  
if (month == 0 )
None.gif  {
None.gif    month
= 12 ;
None.gif    subYear(obj);
None.gif  }
None.gif  myObj[
2 ].innerHTML = month;
None.gif  dateShow(obj.parentNode.parentNode.parentNode.nextSibling.nextSibling,eval(myObj[
0 ].innerHTML),eval(myObj[ 2 ].innerHTML))
None.gif}
None.gif
None.gif
function  addMonth(obj)   // 增加月份
None.gif
{
None.gif  
var  myObj = obj.parentNode.parentNode.parentNode.cells[ 2 ].childNodes;
None.gif  
var  month = eval(myObj[ 2 ].innerHTML) + 1 ;
None.gif  
if (month == 13 )
None.gif  {
None.gif    month
= 1 ;
None.gif    addYear(obj);
None.gif  }
None.gif  myObj[
2 ].innerHTML = month;
None.gif  dateShow(obj.parentNode.parentNode.parentNode.nextSibling.nextSibling,eval(myObj[
0 ].innerHTML),eval(myObj[ 2 ].innerHTML))
None.gif}
None.gif
None.gif
function  dateShow(obj,year,month)   // 显示各月份的日
None.gif
{
None.gif  
var  myDate = new  Date(year,month - 1 , 1 );
None.gif  
var  today = new  Date();
None.gif  
var  day = myDate.getDay();
None.gif  
var  selectDate = obj.parentNode.parentNode.previousSibling.previousSibling.value.split(' - ');
None.gif  
var  length;
None.gif  
switch (month)
None.gif  {
None.gif    
case   1 :
None.gif    
case   3 :
None.gif    
case   5 :
None.gif    
case   7 :
None.gif    
case   8 :
None.gif    
case   10 :
None.gif    
case   12 :
None.gif      length
= 31 ;
None.gif      
break ;
None.gif    
case   4 :
None.gif    
case   6 :
None.gif    
case   9 :
None.gif    
case   11 :
None.gif      length
= 30 ;
None.gif      
break ;
None.gif    
case   2 :
None.gif      
if ((year % 4 == 0 ) && (year % 100 != 0 ) || (year % 400 == 0 ))
None.gif        length
= 29 ;
None.gif      
else
None.gif        length
= 28 ;
None.gif  }
None.gif  
for (i = 0 ;i < obj.cells.length;i ++ )
None.gif  {
None.gif    obj.cells[i].innerHTML
= '';
None.gif    obj.cells[i].style.color
= '';
None.gif    obj.cells[i].className
= '';
None.gif  }
None.gif  
for (i = 0 ;i < length;i ++ )
None.gif  {
None.gif    obj.cells[i
+ day].innerHTML = (i + 1 );
None.gif    
if (year == today.getFullYear() && (month - 1 ) == today.getMonth() && (i + 1 ) == today.getDate())
None.gif      obj.cells[i
+ day].style.color = 'red';
None.gif    
if (year == eval(selectDate[ 0 ]) && month == eval(selectDate[ 1 ]) && (i + 1 ) == eval(selectDate[ 2 ]))
None.gif      obj.cells[i
+ day].className = 'ds_border2';
None.gif  }
None.gif}
None.gif
None.gif
function  getValue(obj,inputObj)   // 把选择的日期传给输入框
None.gif
{
None.gif  
var  myObj = inputObj.nextSibling.nextSibling.childNodes[ 0 ].childNodes[ 0 ].cells[ 2 ].childNodes;
None.gif  
if (obj.innerHTML)
None.gif    inputObj.value
= myObj[ 0 ].innerHTML + " - " + myObj[ 2 ].innerHTML + " - " + obj.innerHTML;
None.gif  inputObj.nextSibling.nextSibling.style.display
= 'none';
None.gif  
for (i = 0 ;i < obj.parentNode.parentNode.parentNode.cells.length;i ++ )
None.gif    obj.parentNode.parentNode.parentNode.cells[i].className
= '';
None.gif  obj.className
= 'ds_border2'
None.gif}
None.gif
None.gif
function  dsMove(obj)   // 实现层的拖移
None.gif
{
None.gif  
if (event.button == 1 )
None.gif  {
None.gif    
var  X = obj.clientLeft;
None.gif    
var  Y = obj.clientTop;
None.gif    obj.style.pixelLeft
= X + (event.x - DS_x);
None.gif    obj.style.pixelTop
= Y + (event.y - DS_y);
None.gif  }
None.gif}
None.gif
</ script >
None.gif
None.gif
< script language = javascript >
None.gif  
var  myDate = new  dateSelector();
None.gif  myDate.year
-- ;
None.gif  myDate.inputName
= 'start_date';   // 注意这里设置输入框的name,同一页中日期输入框,不能出现重复的name。
None.gif
  myDate.display();
None.gif
</ script >
None.gif
& nbsp;到
None.gif
< script language = javascript >
None.gif  myDate.year
++ ;
None.gif  myDate.inputName
= 'end_date';   // 注意这里设置输入框的name,同一页中的日期输入框,不能出现重复的name。
None.gif
  myDate.display();
None.gif
</ script >  
185563.html

Dove.Net 2005-07-03 19:23 发表评论

文章来源: http://www.cnblogs.com/Dove/archive/2005/07/03/185563.html

转载于:https://www.cnblogs.com/penghao/archive/2005/07/03/982451.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值