分享
 
 
 

日历控件

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

使用时请在我的blog中留言!

Mask.htc

//©2004 Mini Corporation. mqk2002@hotmail.com

<PUBLIC:EVENT NAME="onerror" ID="error"/>

<PUBLIC:ATTACH EVENT="ondocumentready" HANDLER="DoInit"/>

<PUBLIC:ATTACH EVENT="onmouseover" HANDLER="InputMouseOver"/>

<PUBLIC:ATTACH EVENT="onmouseout" HANDLER="InputMouseOut"/>

<script language="jscript">

function click(){

if (!element.document.getElementById("oDateView")){

inithtml='<table border="0" width="200" cellspacing="0" cellpadding="0" height="145" id="oDateView" class="clsDateView" onblur="this.style.display=\'none\'">';

inithtml+='<tr class="clsDateViewHeader">';

inithtml+=' <td width="15%" align="middle" height="21" style="cursor: hand;"><<</td>';

inithtml+=' <td width="15%" align="middle" height="21" style="cursor: hand;"><</td>';

inithtml+=' <td width="14%" align="middle" height="21"></td>';

inithtml+=' <td width="14%" align="middle" height="21"></td>';

inithtml+=' <td width="14%" align="middle" height="21"></td>';

inithtml+=' <td width="14%" align="middle" height="21" style="cursor: hand;">></td>';

inithtml+=' <td width="14%" align="middle" height="21" style="cursor: hand;">>></td>';

inithtml+='</tr>';

inithtml+='<tr class="clsDateViewWeek">';

inithtml+=' <td width="15%" align="middle" height="21">日</td>';

inithtml+=' <td width="15%" align="middle" height="21">一</td>';

inithtml+=' <td width="14%" align="middle" height="21">二</td>';

inithtml+=' <td width="14%" align="middle" height="21">三</td>';

inithtml+=' <td width="14%" align="middle" height="21">四</td>';

inithtml+=' <td width="14%" align="middle" height="21">五</td>';

inithtml+=' <td width="14%" align="middle" height="21">六</td>';

inithtml+='</tr>';

for (i=3;i<9;i++){

inithtml+='<tr class="clsDateViewDay">';

inithtml+=' <td width="15%" align="middle" height="21" style="cursor: hand;"></td>';

inithtml+=' <td width="15%" align="middle" height="21" style="cursor: hand;"></td>';

inithtml+=' <td width="14%" align="middle" height="21" style="cursor: hand;"></td>';

inithtml+=' <td width="14%" align="middle" height="21" style="cursor: hand;"></td>';

inithtml+=' <td width="14%" align="middle" height="21" style="cursor: hand;"></td>';

inithtml+=' <td width="14%" align="middle" height="21" style="cursor: hand;"></td>';

inithtml+=' <td width="14%" align="middle" height="21" style="cursor: hand;"></td>';

inithtml+='</tr>';

}

inithtml+='</table>';

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<date.getDay()){

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);

}

}

//鼠标移动上触发

functionInputMouseOver(){

element.className="clsInputMouseOver";

}

//鼠标移出触发

functionInputMouseOut(){

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);

}

</script>

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

<html>

<head>

<meta http-equiv="Content-Language" content="zh-cn">

<meta name="GENERATOR" content="Microsoft FrontPage 6.0">

<meta name="ProgId" content="FrontPage.Editor.Document">

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>新建网页 1</title>

<LINK href="Mask.css" type="text/css" rel="Stylesheet">

</head>

<body>

<input type="text" class="clsinput" preset="date">

<input type="text" class="clsinput" preset="float">

<input type="text" class="clsinput" >

</body>

</html>

图例演示

不知为什么不能上传图片了??

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有