作者共發了1篇帖子。
【待处理】吧务后台日历选择器打开时应该自动选择今天
1樓 巨大八爪鱼 2010-12-2 13:54
var inputCalendar={
 nodes:new Object(),
 inputNode:null,
 frame:null,
 opened:false,
 open:function(inputNode){
  if (this.opened) this.close(false);
  this.opened=true;
  var da=new Date();
  var fyear=da.getFullYear();
  var fmonth=da.getMonth();
  
  var frame=createNode('inputCalendar_frame','div',top.document.body,'inputCalendar');
  var inputPosition=Base.Document.getPosition(inputNode);
  var x=inputPosition.x;
  var y=inputPosition.y+25;
  frame.style.left=x+"px";
  frame.style.top=y+"px";
  this.frame=frame;
  
  var title=createNode(null,'div',frame,'title');
  var ta=createNode(null,'div',title,'left');
  var tb=createNode(null,'div',title,'left');
  var tc=createNode(null,'div',title,'right');
  var td=createNode(null,'div',title,'right');
  ta.innerHTML='<<';
  tb.innerHTML='<';
  tc.innerHTML='>>';
  td.innerHTML='>';
  title.innerHTML+=String(fyear)+"年"+String(fmonth+1)+"月";
  
  var ca=createNode(null,'div',frame,'content');
  this.nodes.area=ca;
  this.changeMonth(fyear,fmonth);
  
  var tsel=createNode(null,'div',frame,'time_select');
  var t1=createNode(null,'span',tsel);
  t1.innerHTML="时间:";
  var t2=createNode(null,'span',tsel);
  var t3=createNode(null,'select',t2);
  var j;
  for (var i=-1;i<23;i++){
   j=i+1;
   if (j<10) j="0"+String(j);
   else j=String(j);
   t3.options[t3.length]=new Option(j,i+1);
  }
  var t5=createNode(null,'span',t2);
  t5.innerHTML=':';
  var t4=createNode(null,'select',t2);
  for (var i=0;i<60;i++){
   j=i;
   if (j<10) j="0"+String(j);
   else j=String(j);
   t4.options[t4.length]=new Option(j,i);
  }
  
  var buts=createNode(null,'div',frame,'time_select');
  buts.innerHTML='<input onclick="inputCalendar.puts()" type="button" value="确 定" />&nbsp;<input onclick="inputCalendar.close()" type="button" value="取 消" />';
  this.inputNode=inputNode;
 },
 changeMonth:function(year,month){
  var da=new Date();
  var fyear=da.getFullYear();
  var fmonth=da.getMonth();
  
  //获得这个月的1日的星期数
  var ca=this.nodes.area;
  var first=new Date(year,month,1);
  var firstDay=first.getDay();
  var dayN=new Date(first-firstDay*86400000); //第一个日期
  
  //输出星期栏
  var xqs=new Array('日','一','二','三','四','五','六');
  var ht='<table width="100%" border="0" cellpadding="0" cellspacing="0"><tr class="xql">';
  for (var i=0;i<7;i++) ht+='<td>'+xqs[i]+'</td>';
  ht+='</tr>';
  
  //输出各日期
  var j,k,m,cla;
  var n=0;
  for (i=0;i<6;i++){
   ht+='<tr>';
   for (j=0;j<7;j++,n--){
    cla=new Array();
    m=new Date(dayN-n*86400000);
    ht+='<td onmouseover="inputCalendar.mouse.select(this)" onmouseout="inputCalendar.mouse.out(this)" onclick="inputCalendar.mouse.click(this,'+String(m.getFullYear())+','+String(m.getMonth()+1)+','+String(m.getDate())+')"';
    if (m.getFullYear()==fyear && m.getMonth()==fmonth && m.getDate()==da.getDate()) cla[0]="istoday";
    if (!(m.getFullYear()==year && m.getMonth()==month)) cla[cla.length]="noMonth";
    cla=Base.Array.unsplit(' ',cla,true);
    if (cla!="") ht+=' class="'+cla+'"';
    ht+='>'+String(m.getDate());
    ht+='</td>';
   }
   ht+='</tr>';
  }
  ca.innerHTML=ht+'</table>';
 },
 close:function(getFocus){
  document.body.removeChild(this.frame);
  if (getFocus!==false) this.inputNode.focus();
  this.inputNode=null;
  this.opened=false;
 },
 puts:function(){
  
 },
 mouse:{
  selectedNode:null,
  selectedDate:null,
  select:function(that){
   var istoday=classhave(that.className,'istoday');
   var noMonth=classhave(that.className,'noMonth');
   var selected=classhave(that.className,'selected');
   var omo="onmouseover";
   if (istoday) omo+=" istoday";
   if (noMonth) omo+=" noMonth";
   if (selected) omo+=" selected";
   that.className=omo;
  },
  out:function(that){
   var istoday=classhave(that.className,'istoday');
   var noMonth=classhave(that.className,'noMonth');
   var selected=classhave(that.className,'selected');
   var omo="";
   if (istoday) omo="istoday";
   if (noMonth) omo=classpast(omo,"noMonth");
   if (selected) omo=classpast(omo,"selected");
   that.className=omo;
  },
  click:function(that,y,m,d){
   if (this.selectedNode==that) return false;
   that.className=classpast(that.className,"selected");
   if (this.selectedNode!=null){
    var istoday=classhave(this.selectedNode.className,'istoday');
    var noMonth=classhave(this.selectedNode.className,'noMonth');
    var omo="";
    if (istoday) omo="istoday";
    if (noMonth) omo=classpast(omo,"noMonth");
    this.selectedNode.className=omo;
   }
   this.selectedNode=that;
   this.selectedDate=new Date(y,m-1,d);
   
  }
 }
};

回復帖子

  抱歉,本吧禁止發帖
內容:
用戶名: 您目前是匿名發表
 
 
©2010-2024 Arslanbar [手機版] [桌面版]
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。