ʹÓÃʱÇëÔÚÎÒµÄblogÖÐÁôÑÔ£¡
Mask.htc
//©2004 Mini Corporation. mqk2002@hotmail.com
function click(){
if (!element.document.getElementById("oDateView")){
initHTML='
| << | ';< | ';'; | '; | '; | > | ';>> | ';
| ÈÕ | ';Ò» | ';¶þ | ';Èý | ';ËÄ | ';Îå | ';Áù | ';
| '; | '; | '; | '; | '; | '; | '; |
element.document.body.insertAdjacentHTML("beforeEnd",initHTML);
oDateView.attachEvent("onclick",DateViewClick);
oDateView.attachEvent("onmouseover",DateViewMouseOver);
oDateView.attachEvent("onmouseout",DateViewMouseOut);
element.document.attachEvent("onclick",DocumentClick);
}
window.activedate=value;
window.activeobj=this;
BuildDate();
DisplayDateView();
}
function DateViewClick(){
var e = window.event.srcElement
switch (e.innerText){
case ">>":
ChangeDate(12);
break;
case "<<":
ChangeDate(-12);
break;
case ">":
ChangeDate(1);
break;
case "<":
ChangeDate(-1);
break;
default:
if (e.style.cursor=="hand"){
year=new Date(Date.parse(e.value)).getFullYear();
month=new Date(Date.parse(e.value)).getMonth()+1;
day=new Date(Date.parse(e.value)).getDate();
oDateView.style.display="none";
window.activeobj.value=year+"/"+month+"/"+day;
}
}
}
function DateViewMouseOver(){
var e = window.event.srcElement
if ((e.style.cursor=="hand")){
e.className="clsDateViewDayOver";
}
}
function DateViewMouseOut(){
var e = window.event.srcElement
if ((e.style.cursor=="hand")){
e.className="";
}
}
function ChangeDate(step){
year=new Date(Date.parse(window.activedate)).getFullYear();
month=new Date(Date.parse(window.activedate)).getMonth()+step;
day=new Date(Date.parse(window.activedate)).getDate();
window.activedate=new Date(year,month,day);
BuildDate();
}
function BuildDate() {
if (window.activedate==""){
year=new Date().getFullYear();
month=new Date().getMonth();
day=new Date().getDate();
}
else{
year=new Date(Date.parse(window.activedate)).getFullYear();
month=new Date(Date.parse(window.activedate)).getMonth();
day=new Date(Date.parse(window.activedate)).getDate();
}
window.activedate=year+"/"+eval(month+1)+"/"+day;
eval(oDateView).rows(0).cells(2).innerText=year;
eval(oDateView).rows(0).cells(3).innerText=month+1;
eval(oDateView).rows(0).cells(4).innerText=day;
var lastdate=new Date(year,month,0);
var date=new Date(year,month,1);
var maxday=new Date(year,month+1,0).getDate();
for (var i=0;i<7;i++){
var cell=eval(oDateView).rows(2).cells(i);
if (i cell.innerText=lastdate.getDate()-date.getDay()+i+1; cell.style.color="#999999"; cell.value=new Date(year,month-1,(lastdate.getDate()-date.getDay()+i+1)); } else{ cell.innerText=i+1-date.getDay(); cell.style.color="#000000"; cell.value=new Date(year,month,i+1-date.getDay()); } } for(i=7;i<42;i++){ day=i+1-date.getDay(); var cell=eval(oDateView).rows(Math.floor(i/7)+2).cells(i%7); if (day<=maxday){ cell.innerHTML=day; cell.style.color="#000000"; cell.value=new Date(year,month,day); } else{ cell.innerHTML=day-maxday; cell.style.color="#999999"; cell.value=new Date(year,month+1,day-maxday); } } } function DisplayDateView(){ oDateView.style.left=getOffsetLeft(element); oDateView.style.top=getOffsetTop(element)+element.offsetHeight; if (oDateView.style.display="none"){ oDateView.style.display="block"; } else{ oDateView.style.display="none"; } } function DocumentClick(){ var e = window.event.srcElement; if (((e.tagName.toLowerCase() != "input")||((e.tagName.toLowerCase() == "input")&&(e.preset==null)))&&(!IsExists(e,oDateView))){ oDateView.style.display="none"; } } function IsExists(src,dst){ if (src.tagName!="BODY"){ if (src.parentElement==dst) return true; return IsExists(src.parentElement,dst) } return false; } function getOffsetLeft(src){ var set=0; if(src) { if (src.offsetParent) set+=src.offsetLeft+getOffsetLeft(src.offsetParent); if(src.tagName!="BODY") { var x=parseInt(src.scrollLeft,10); if(!isNaN(x)) set-=x; } } return set; } function getOffsetTop(src){ var set=0; if(src) { if (src.offsetParent) set+=src.offsetTop+getOffsetTop(src.offsetParent); if(src.tagName!="BODY") { var y=parseInt(src.scrollTop,10); if(!isNaN(y)) set-=y; } } return set; } //³õʼ»¯¿Ø¼þ function DoInit() { var sTag = tagName.toLowerCase(); if (sTag == "input"){ attachEvent("onblur", InputBlur); if (this.preset=="date") attachEvent("onclick",click); } } //Êó±êÒÆ¶¯ÉÏ´¥·¢ function¡¡InputMouseOver(){ element.className="clsInputMouseOver"; } //Êó±êÒÆ³ö´¥·¢ function¡¡InputMouseOut(){ element.className="clsInput"; } function InputBlur() { if (value=="") return; switch(this.preset) { case "date": if (value=="") return var reg = /^[1-2]{1,1}[0-9]{3,3}[/]{1,1}[0-9]{1,2}[/]{1,1}[0-9]{1,2}$/; if (!reg.test(value)){ ReturnError("ÎÞЧµÄÈÕÆÚ¸ñʽ"); } break; case "float": var reg = /^[0-9]{0,10}[.]{0,1}[0-9]{0,4}$/; if (!reg.test(value)){ ReturnError("ÎÞЧµÄÊý×Ö¸ñʽ"); } break; case "email": var reg = /^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$/; if (!reg.test(value)){ ReturnError("ÎÞЧµÄemail¸ñʽ"); } break; } } function ReturnError(sMsg) { var oEvent = createEventObject(); oEvent.setAttribute("error", sMsg); error.fire(oEvent); element.focus(); alert(sMsg); } Mask.CSS .clsInput { border: #999999 1px solid; background-color:#f5f5f1; font: 12px ËÎÌå; width:95%; BEHAVIOR: url(Mask.htc); } .clsInputMouseOver { border: #000000 1px solid; background-color:#fffff1; font: 12px ËÎÌå; width:95%; BEHAVIOR: url(Mask.htc); } .clsDateView { border: #999999 1px solid; font-size: 12px; background-color: #FFFFCC; TEXT-ALIGN: center; POSITION: absolute; left:auto; top:auto; width:200; } .clsDateViewHeader { border:1px solid #3399FF; background-color: #990000; color:#FFFFCC } .clsDateViewWeek { background-color: #FFCC66;color:#663399 } .clsDateViewDay { background-color: #FFFFCC; } .clsDateViewDayOver { background-color: #FFCC66; } Test.htm
ͼÀýÑÝʾ
²»ÖªÎªÊ²Ã´²»ÄÜÉÏ´«Í¼Æ¬ÁË£¿£¿¡¡

