- 浏览: 21294 次
- 性别:
- 来自: 北京
最新评论
一个日期控件的使用
在页面上加入
<script type="text/javascript" src="../js/calendar.js"></script>
<input name="t_invalid_date" id="t_invalid_data" type="text" style="CURSOR: pointer" onClick="setday(this,document.all.t_invalid_data)" readonly="readonly">
即可看到效果。下面是js文件。
calendar.js内容为:
//---------------------------------------------------------------------------- // 这是梅花雨做的一个日历 Javascript 页面脚本控件,适用于微软的 IE (5.0以上)浏览器 // 主调用函数是 setday(this,[object])和setday(this),[object]是控件输出的控件名,举两个例子: // 一、<input name=txt><input type=button value=setday onclick="setday(this,document.all.txt)"> // 二、<input onfocus="setday(this)"> // 若有什么不足的地方,或者您有更好的建议,请与我联系:mail: meizz@hzcnc.com // 本日历的年份限制是(1000 - 9999) // 按ESC键关闭该控件 // 在年和月的显示地方点击时会分别出年与月的下拉框 // 控件外任意点击一点即可关闭该控件 /* 以下为walkingpoison的修改说明 walkingpoison联系方式:wayx@kali.com.cn Ver 2.0 修改日期:2002-12-13 修改内容: 1.*全新修改使用iframe作为日历的载体,不再被select和flash等控件挡住。 2.修正了移植到iframe后移动日历控件的问题。 Ver 1.5 修改日期:2002-12-4 修改内容: 1.选中的日期显示为凹下去的样式 2.修改了关闭层的方法,使得失去焦点的时候能够关闭日历。 3.修改按键处理,使得Tab切换焦点的时候可以关闭控件 4.*可以自定义日历是否可以拖动 Ver 1.4 修改日期:2002-12-3 修改内容: 1.修正选中年/月份下拉框后按Esc键导致年/月份不显示的问题 2.修正使用下拉框选择月份造成的日期错误(字符串转化为数字的问题) 3.*外观样式的改进,使得控件从丑小鸭变成了美丽的天鹅,从灰姑娘变成了高贵的公主,从……(读者可以自己进行恰当的比喻) 4.再次增大年/月份的点击空间,并对下拉框的位置稍作调整 注:*号表示比较关键的改动 说明: 1.受到iframe的限制,如果拖动出日历窗口,则日历会停止移动。 */ //==================================================== 参数设定部分 ======================================================= var bMoveable=true; //设置日历是否可以拖动 var _VersionInfo="Version:2.0 2.0作者:walkingpoison 1.0作者: F.R.Huang(meizz) MAIL: meizz@hzcnc.com" //版本信息 //==================================================== WEB 页面显示部分 ===================================================== var strFrame; //存放日历层的HTML代码 document.writeln('<iframe id=meizzDateLayer Author=wayx frameborder=0 style="position: absolute; width: 144; height: 211; z-index: 9998; display: none"></iframe>'); strFrame='<style>'; strFrame+='INPUT.button{BORDER-RIGHT: #ff9900 1px solid;BORDER-TOP: #ff9900 1px solid;BORDER-LEFT: #ff9900 1px solid;'; strFrame+='BORDER-BOTTOM: #ff9900 1px solid;BACKGROUND-COLOR: #fff8ec;font-family:宋体;}'; strFrame+='TD{FONT-SIZE: 9pt;font-family:宋体;}'; strFrame+='</style>'; strFrame+='<scr' + 'ipt>'; strFrame+='var datelayerx,datelayery; /*存放日历控件的鼠标位置*/'; strFrame+='var bDrag; /*标记是否开始拖动*/'; strFrame+='function document.onmousemove() /*在鼠标移动事件中,如果开始拖动日历,则移动日历*/'; strFrame+='{if(bDrag && window.event.button==1)'; strFrame+=' {var DateLayer=parent.document.all.meizzDateLayer.style;'; strFrame+=' DateLayer.posLeft += window.event.clientX-datelayerx;/*由于每次移动以后鼠标位置都恢复为初始的位置,因此写法与div中不同*/'; strFrame+=' DateLayer.posTop += window.event.clientY-datelayery;}}'; strFrame+='function DragStart() /*开始日历拖动*/'; strFrame+='{var DateLayer=parent.document.all.meizzDateLayer.style;'; strFrame+=' datelayerx=window.event.clientX;'; strFrame+=' datelayery=window.event.clientY;'; strFrame+=' bDrag=true;}'; strFrame+='function DragEnd(){ /*结束日历拖动*/'; strFrame+=' bDrag=false;}'; strFrame+='</scr' + 'ipt>'; strFrame+='<div style="z-index:9999;position: absolute; left:0; top:0;" onselectstart="return false"><span id=tmpSelectYearLayer Author=wayx style="z-index: 9999;position: absolute;top: 3; left: 19;display: none"></span>'; strFrame+='<span id=tmpSelectMonthLayer Author=wayx style="z-index: 9999;position: absolute;top: 3; left: 78;display: none"></span>'; strFrame+='<table border=1 cellspacing=0 cellpadding=0 width=142 height=160 bordercolor=#ff9900 bgcolor=#ff9900 Author="wayx">'; strFrame+=' <tr Author="wayx"><td width=142 height=23 Author="wayx" bgcolor=#FFFFFF><table border=0 cellspacing=1 cellpadding=0 width=140 Author="wayx" height=23>'; strFrame+=' <tr align=center Author="wayx"><td width=16 align=center bgcolor=#ff9900 style="font-size:12px;cursor: hand;color: #ffffff" '; strFrame+=' onclick="parent.meizzPrevM()" title="向前翻 1 月" Author=meizz><b Author=meizz><</b>'; strFrame+=' </td><td width=60 align=center style="font-size:12px;cursor:default" Author=meizz '; strFrame+='onmouseover="style.backgroundColor=\'#FFD700\'" onmouseout="style.backgroundColor=\'white\'" '; strFrame+='onclick="parent.tmpSelectYearInnerHTML(this.innerText.substring(0,4))" title="点击这里选择年份"><span Author=meizz id=meizzYearHead></span></td>'; strFrame+='<td width=48 align=center style="font-size:12px;cursor:default" Author=meizz onmouseover="style.backgroundColor=\'#FFD700\'" '; strFrame+=' onmouseout="style.backgroundColor=\'white\'" onclick="parent.tmpSelectMonthInnerHTML(this.innerText.length==3?this.innerText.substring(0,1):this.innerText.substring(0,2))"'; strFrame+=' title="点击这里选择月份"><span id=meizzMonthHead Author=meizz></span></td>'; strFrame+=' <td width=16 bgcolor=#ff9900 align=center style="font-size:12px;cursor: hand;color: #ffffff" '; strFrame+=' onclick="parent.meizzNextM()" title="向后翻 1 月" Author=meizz><b Author=meizz>></b></td></tr>'; strFrame+=' </table></td></tr>'; strFrame+=' <tr Author="wayx"><td width=142 height=18 Author="wayx">'; strFrame+='<table border=1 cellspacing=0 cellpadding=0 bgcolor=#ff9900 ' + (bMoveable? 'onmousedown="DragStart()" onmouseup="DragEnd()"':''); strFrame+=' BORDERCOLORLIGHT=#FF9900 BORDERCOLORDARK=#FFFFFF width=140 height=20 Author="wayx" style="cursor:' + (bMoveable ? 'move':'default') + '" title="在此处可按下鼠标左键可进行拖动">'; strFrame+='<tr Author="wayx" align=center valign=bottom><td style="font-size:12px;color:#FFFFFF" Author=meizz>日</td>'; strFrame+='<td style="font-size:12px;color:#FFFFFF" Author=meizz>一</td><td style="font-size:12px;color:#FFFFFF" Author=meizz>二</td>'; strFrame+='<td style="font-size:12px;color:#FFFFFF" Author=meizz>三</td><td style="font-size:12px;color:#FFFFFF" Author=meizz>四</td>'; strFrame+='<td style="font-size:12px;color:#FFFFFF" Author=meizz>五</td><td style="font-size:12px;color:#FFFFFF" Author=meizz>六</td></tr>'; strFrame+='</table></td></tr><!-- Author:F.R.Huang(meizz) http://www.meizz.com/ mail: meizz@hzcnc.com 2002-10-8 -->'; strFrame+=' <tr Author="wayx"><td width=142 height=120 Author="wayx">'; strFrame+=' <table border=1 cellspacing=2 cellpadding=0 BORDERCOLORLIGHT=#FF9900 BORDERCOLORDARK=#FFFFFF bgcolor=#fff8ec width=140 height=120 Author="wayx">'; var n=0; for (j=0;j<5;j++){ strFrame+= ' <tr align=center Author="wayx">'; for (i=0;i<7;i++){ strFrame+='<td width=20 height=20 id=meizzDay'+n+' style="font-size:12px" Author=meizz onclick=parent.meizzDayClick(this.innerText,0)></td>';n++;} strFrame+='</tr>';} strFrame+=' <tr align=center Author="wayx">'; for (i=35;i<39;i++)strFrame+='<td width=20 height=20 id=meizzDay'+i+' style="font-size:12px" Author=wayx onclick="parent.meizzDayClick(this.innerText,0)"></td>'; strFrame+=' <td colspan=3 align=right Author=meizz><span onclick=parent.closeLayer() style="font-size:12px;cursor: hand"'; strFrame+=' Author=meizz title="' + _VersionInfo + '"><u>关闭</u></span> </td></tr>'; strFrame+=' </table></td></tr><tr Author="wayx"><td Author="wayx">'; strFrame+=' <table border=0 cellspacing=1 cellpadding=0 width=100% Author="wayx" bgcolor=#FFFFFF>'; strFrame+=' <tr Author="wayx"><td Author=meizz align=left><input Author=meizz type=button class=button value="<<" title="向前翻 1 年" onclick="parent.meizzPrevY()" '; strFrame+=' onfocus="this.blur()" style="font-size: 12px; height: 20px"><input Author=meizz class=button title="向前翻 1 月" type=button '; strFrame+=' value="< " onclick="parent.meizzPrevM()" onfocus="this.blur()" style="font-size: 12px; height: 20px"></td><td '; strFrame+=' Author=meizz align=center><input Author=meizz type=button class=button value=Today onclick="parent.meizzToday()" '; strFrame+=' onfocus="this.blur()" title="当前日期" style="font-size: 12px; height: 20px; cursor:hand"></td><td '; strFrame+=' Author=meizz align=right><input Author=meizz type=button class=button value=" >" onclick="parent.meizzNextM()" '; strFrame+=' onfocus="this.blur()" title="向后翻 1 月" class=button style="font-size: 12px; height: 20px"><input '; strFrame+=' Author=meizz type=button class=button value=">>" title="向后翻 1 年" onclick="parent.meizzNextY()"'; strFrame+=' onfocus="this.blur()" style="font-size: 12px; height: 20px"></td>'; strFrame+='</tr></table></td></tr></table></div>'; window.frames.meizzDateLayer.document.writeln(strFrame); window.frames.meizzDateLayer.document.close(); //解决ie进度条不结束的问题 //==================================================== WEB 页面显示部分 ====================================================== var outObject; var outButton; //点击的按钮 var outDate=""; //存放对象的日期 var odatelayer=window.frames.meizzDateLayer.document.all; //存放日历对象 function setday(tt,obj) //主调函数 { if (arguments.length > 2){alert("对不起!传入本控件的参数太多!");return;} if (arguments.length == 0){alert("对不起!您没有传回本控件任何参数!");return;} var dads = document.all.meizzDateLayer.style; var th = tt; var ttop = tt.offsetTop; //TT控件的定位点高 var thei = tt.clientHeight; //TT控件本身的高 var tleft = tt.offsetLeft; //TT控件的定位点宽 var ttyp = tt.type; //TT控件的类型 while (tt = tt.offsetParent){ttop+=tt.offsetTop; tleft+=tt.offsetLeft;} dads.top = (ttyp=="image")? ttop+thei : ttop+thei+6; dads.left = tleft; outObject = (arguments.length == 1) ? th : obj; outButton = (arguments.length == 1) ? null : th; //设定外部点击的按钮 //根据当前输入框的日期显示日历的年月 var reg = /^(\d+)-(\d{1,2})-(\d{1,2})$/; var r = outObject.value.match(reg); if(r!=null){ r[2]=r[2]-1; var d= new Date(r[1], r[2],r[3]); if(d.getFullYear()==r[1] && d.getMonth()==r[2] && d.getDate()==r[3]){ outDate=d; //保存外部传入的日期 } else outDate=""; meizzSetDay(r[1],r[2]+1); } else{ outDate=""; meizzSetDay(new Date().getFullYear(), new Date().getMonth() + 1); } dads.display = ''; event.returnValue=false; } var MonHead = new Array(12); //定义阳历中每个月的最大天数 MonHead[0] = 31; MonHead[1] = 28; MonHead[2] = 31; MonHead[3] = 30; MonHead[4] = 31; MonHead[5] = 30; MonHead[6] = 31; MonHead[7] = 31; MonHead[8] = 30; MonHead[9] = 31; MonHead[10] = 30; MonHead[11] = 31; var meizzTheYear=new Date().getFullYear(); //定义年的变量的初始值 var meizzTheMonth=new Date().getMonth()+1; //定义月的变量的初始值 var meizzWDay=new Array(39); //定义写日期的数组 //function document.onclick() //任意点击时关闭该控件 //ie6的情况可以由下面的切换焦点处理代替 //{ // with(window.event) // { if (srcElement.getAttribute("Author")==null && srcElement != outObject && srcElement != outButton) // closeLayer(); // } //} //function document.onkeyup() //按Esc键关闭,切换焦点关闭 // { // if (window.event.keyCode==27){ // if(outObject)outObject.blur(); // closeLayer(); // } // else if(document.activeElement) // if(document.activeElement.getAttribute("Author")==null && document.activeElement != outObject && document.activeElement != outButton) // { // closeLayer(); // } // } function meizzWriteHead(yy,mm) //往 head 中写入当前的年与月 { odatelayer.meizzYearHead.innerText = yy + " 年"; odatelayer.meizzMonthHead.innerText = mm + " 月"; } function tmpSelectYearInnerHTML(strYear) //年份的下拉框 { if (strYear.match(/\D/)!=null){alert("年份输入参数不是数字!");return;} var m = (strYear) ? strYear : new Date().getFullYear(); if (m < 1000 || m > 9999) {alert("年份值不在 1000 到 9999 之间!");return;} var n = m - 10; if (n < 1000) n = 1000; if (n + 26 > 9999) n = 9974; var s = "<select Author=meizz name=tmpSelectYear style='font-size: 12px' " s += "onblur='document.all.tmpSelectYearLayer.style.display=\"none\"' " s += "onchange='document.all.tmpSelectYearLayer.style.display=\"none\";" s += "parent.meizzTheYear = this.value; parent.meizzSetDay(parent.meizzTheYear,parent.meizzTheMonth)'>\r\n"; var selectInnerHTML = s; for (var i = n; i < n + 26; i++) { if (i == m) {selectInnerHTML += "<option Author=wayx value='" + i + "' selected>" + i + "年" + "</option>\r\n";} else {selectInnerHTML += "<option Author=wayx value='" + i + "'>" + i + "年" + "</option>\r\n";} } selectInnerHTML += "</select>"; odatelayer.tmpSelectYearLayer.style.display=""; odatelayer.tmpSelectYearLayer.innerHTML = selectInnerHTML; odatelayer.tmpSelectYear.focus(); } function tmpSelectMonthInnerHTML(strMonth) //月份的下拉框 { if (strMonth.match(/\D/)!=null){alert("月份输入参数不是数字!");return;} var m = (strMonth) ? strMonth : new Date().getMonth() + 1; var s = "<select Author=meizz name=tmpSelectMonth style='font-size: 12px' " s += "onblur='document.all.tmpSelectMonthLayer.style.display=\"none\"' " s += "onchange='document.all.tmpSelectMonthLayer.style.display=\"none\";" s += "parent.meizzTheMonth = this.value; parent.meizzSetDay(parent.meizzTheYear,parent.meizzTheMonth)'>\r\n"; var selectInnerHTML = s; for (var i = 1; i < 13; i++) { if (i == m) {selectInnerHTML += "<option Author=wayx value='"+i+"' selected>"+i+"月"+"</option>\r\n";} else {selectInnerHTML += "<option Author=wayx value='"+i+"'>"+i+"月"+"</option>\r\n";} } selectInnerHTML += "</select>"; odatelayer.tmpSelectMonthLayer.style.display=""; odatelayer.tmpSelectMonthLayer.innerHTML = selectInnerHTML; odatelayer.tmpSelectMonth.focus(); } function closeLayer() //这个层的关闭 { document.all.meizzDateLayer.style.display="none"; } function IsPinYear(year) //判断是否闰平年 { if (0==year%4&&((year%100!=0)||(year%400==0))) return true;else return false; } function GetMonthCount(year,month) //闰年二月为29天 { var c=MonHead[month-1];if((month==2)&&IsPinYear(year)) c++;return c; } function GetDOW(day,month,year) //求某天的星期几 { var dt=new Date(year,month-1,day).getDay()/7; return dt; } function meizzPrevY() //往前翻 Year { if(meizzTheYear > 999 && meizzTheYear <10000){meizzTheYear--;} else{alert("年份超出范围(1000-9999)!");} meizzSetDay(meizzTheYear,meizzTheMonth); } function meizzNextY() //往后翻 Year { if(meizzTheYear > 999 && meizzTheYear <10000){meizzTheYear++;} else{alert("年份超出范围(1000-9999)!");} meizzSetDay(meizzTheYear,meizzTheMonth); } function meizzToday() //Today Button { var today; meizzTheYear = new Date().getFullYear(); meizzTheMonth = new Date().getMonth()+1; today=new Date().getDate(); //meizzSetDay(meizzTheYear,meizzTheMonth); if(outObject){ if (meizzTheMonth < 10){meizzTheMonth = "0" + meizzTheMonth;} if ( today < 10){today = "0" + today;} outObject.value=meizzTheYear + "-" + meizzTheMonth + "-" + today; } closeLayer(); } function meizzPrevM() //往前翻月份 { if(meizzTheMonth>1){meizzTheMonth--}else{meizzTheYear--;meizzTheMonth=12;} meizzSetDay(meizzTheYear,meizzTheMonth); } function meizzNextM() //往后翻月份 { if(meizzTheMonth==12){meizzTheYear++;meizzTheMonth=1}else{meizzTheMonth++} meizzSetDay(meizzTheYear,meizzTheMonth); } function meizzSetDay(yy,mm) //主要的写程序********** { meizzWriteHead(yy,mm); //设置当前年月的公共变量为传入值 meizzTheYear=yy; meizzTheMonth=mm; for (var i = 0; i < 39; i++){meizzWDay[i]=""}; //将显示框的内容全部清空 var day1 = 1,day2=1,firstday = new Date(yy,mm-1,1).getDay(); //某月第一天的星期几 for (i=0;i<firstday;i++)meizzWDay[i]=GetMonthCount(mm==1?yy-1:yy,mm==1?12:mm-1)-firstday+i+1 //上个月的最后几天 for (i = firstday; day1 < GetMonthCount(yy,mm)+1; i++){meizzWDay[i]=day1;day1++;} for (i=firstday+GetMonthCount(yy,mm);i<39;i++){meizzWDay[i]=day2;day2++} for (i = 0; i < 39; i++) { var da = eval("odatelayer.meizzDay"+i) //书写新的一个月的日期星期排列 if (meizzWDay[i]!="") { //初始化边框 da.borderColorLight="#FF9900"; da.borderColorDark="#FFFFFF"; if(i<firstday) //上个月的部分 { da.innerHTML="<b><font color=gray>" + meizzWDay[i] + "</font></b>"; da.title=(mm==1?12:mm-1) +"月" + meizzWDay[i] + "日"; da.onclick=Function("meizzDayClick(this.innerText,-1)"); if(!outDate) da.style.backgroundColor = ((mm==1?yy-1:yy) == new Date().getFullYear() && (mm==1?12:mm-1) == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate()) ? "#FFD700":"#e0e0e0"; else { da.style.backgroundColor =((mm==1?yy-1:yy)==outDate.getFullYear() && (mm==1?12:mm-1)== outDate.getMonth() + 1 && meizzWDay[i]==outDate.getDate())? "#00ffff" : (((mm==1?yy-1:yy) == new Date().getFullYear() && (mm==1?12:mm-1) == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate()) ? "#FFD700":"#e0e0e0"); //将选中的日期显示为凹下去 if((mm==1?yy-1:yy)==outDate.getFullYear() && (mm==1?12:mm-1)== outDate.getMonth() + 1 && meizzWDay[i]==outDate.getDate()) { da.borderColorLight="#FFFFFF"; da.borderColorDark="#FF9900"; } } } else if (i>=firstday+GetMonthCount(yy,mm)) //下个月的部分 { da.innerHTML="<b><font color=gray>" + meizzWDay[i] + "</font></b>"; da.title=(mm==12?1:mm+1) +"月" + meizzWDay[i] + "日"; da.onclick=Function("meizzDayClick(this.innerText,1)"); if(!outDate) da.style.backgroundColor = ((mm==12?yy+1:yy) == new Date().getFullYear() && (mm==12?1:mm+1) == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate()) ? "#FFD700":"#e0e0e0"; else { da.style.backgroundColor =((mm==12?yy+1:yy)==outDate.getFullYear() && (mm==12?1:mm+1)== outDate.getMonth() + 1 && meizzWDay[i]==outDate.getDate())? "#00ffff" : (((mm==12?yy+1:yy) == new Date().getFullYear() && (mm==12?1:mm+1) == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate()) ? "#FFD700":"#e0e0e0"); //将选中的日期显示为凹下去 if((mm==12?yy+1:yy)==outDate.getFullYear() && (mm==12?1:mm+1)== outDate.getMonth() + 1 && meizzWDay[i]==outDate.getDate()) { da.borderColorLight="#FFFFFF"; da.borderColorDark="#FF9900"; } } } else //本月的部分 { da.innerHTML="<b>" + meizzWDay[i] + "</b>"; da.title=mm +"月" + meizzWDay[i] + "日"; da.onclick=Function("meizzDayClick(this.innerText,0)"); //给td赋予onclick事件的处理 //如果是当前选择的日期,则显示亮蓝色的背景;如果是当前日期,则显示暗黄色背景 if(!outDate) da.style.backgroundColor = (yy == new Date().getFullYear() && mm == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate())? "#FFD700":"#e0e0e0"; else { da.style.backgroundColor =(yy==outDate.getFullYear() && mm== outDate.getMonth() + 1 && meizzWDay[i]==outDate.getDate())? "#00ffff":((yy == new Date().getFullYear() && mm == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate())? "#FFD700":"#e0e0e0"); //将选中的日期显示为凹下去 if(yy==outDate.getFullYear() && mm== outDate.getMonth() + 1 && meizzWDay[i]==outDate.getDate()) { da.borderColorLight="#FFFFFF"; da.borderColorDark="#FF9900"; } } } da.style.cursor="hand" } else{da.innerHTML="";da.style.backgroundColor="";da.style.cursor="default"} } } function meizzDayClick(n,ex) //点击显示框选取日期,主输入函数************* { var yy=meizzTheYear; var mm = parseInt(meizzTheMonth)+ex; //ex表示偏移量,用于选择上个月份和下个月份的日期 //判断月份,并进行对应的处理 if(mm<1){ yy--; mm=12+mm; } else if(mm>12){ yy++; mm=mm-12; } if (mm < 10){mm = "0" + mm;} if (outObject) { if (!n) {//outObject.value=""; return;} if ( n < 10){n = "0" + n;} outObject.value= yy + "-" + mm + "-" + n ; //注:在这里你可以输出改成你想要的格式 closeLayer(); } else {closeLayer(); alert("您所要输出的控件对象并不存在!");} } /* ************************************************************************ */ var popWin = null; var winCount = 0; var winName = "popWin"; function SetupPopWin(winURL,winWidth, winHeight, moveX, moveY, winFeatures) { CloseSetupWin(); if (SetupPopWin.arguments.length == 6) winFeatures = "," + winFeatures; else winFeatures = ""; x = (screen.width-winWidth)/2; if(moveX != "") x = moveX; y = (screen.height-winHeight)/2; if(moveX != "") y = moveY; popWin = window.open(winURL, "" , "top=" + y + ",left=" + x + ",width=" + winWidth + ",height=" + winHeight + winFeatures + ",resizable=no,scrollbars=yes"); } function CloseSetupWin() { if(navigator.appName != "Microsoft Internet Explorer" || parseInt(navigator.appVersion) >=4) { if(popWin != null) if(!popWin.closed) popWin.close(); } } function SetupModalWin(winURL,winWidth, winHeight, moveX, moveY, winFeatures) { x = (screen.width-winWidth)/2; if(moveX != "") x = moveX; y = (screen.height-winHeight)/2; if(moveX != "") y = moveY; var ret = window.showModalDialog(winURL,"","top=" + y + ",left=" + x + ",width=" + winWidth + ",height=" + winHeight + winFeatures + ",resizable=no,scrollbars=yes"); return ret; } /** *功能说明:判断新的用户名是否合法 *description:新的用户名为:长度3-18个字母、下划线、数字组成, * 不能以下划线“_”或“__”开头或结尾的字符串。 *param:inputname 输入的用户名 *return true 或false */ function checkname(inputname) { var instr=trim(inputname); if(instr=="") return false; var ilength=instr.length; //if((ilength>10)||(ilength<3)) return false; for(i=0;i<ilength;i++) { var mychar=instr.charAt(i); if(i==0) { if(!((mychar>='a')&&(mychar<='z')) && !((mychar>='A')&&(mychar<='Z'))) { return false; } } else if(i==ilength-1) { if(mychar=='_') { return false; } } else { if(!((('a'<=mychar)&&(mychar<='z'))||((mychar>='A')&&(mychar<='Z')) || (('0'<=mychar)&&(mychar<='9'))||(mychar=='_')||(mychar==".")||(mychar=="-"))||(instr.search("__")!=-1)) { return false; } } } return true; } /** *功能说明:检查是否为数字 *description:只能由 数字组成, *return true 或false */ //整数 function checkint(num) { return (/^(-|\+)?\d+$/.test(num)); } //大于0的整数 function checkintz(num) { return (/^\d+$/.test(num)); } //负整数的验证 function checkintf(num) { return (/^-\d+$/.test(num)); } function checknumber(num) { var numstr = num; var i = 0; k=0 var numlength = numstr.length; for (i = 0; i < numlength; i++) { var temp = numstr.charAt(i); if ( !(('0' <= temp) && (temp <= '9')||(temp=='.'))) { return false; } if(temp=='.') { k=k+1; } if(k>1) { return false; } } return true; } /** *功能说明:去掉空格 *trim:去掉左边的和右边的 *leftTrim:去掉左边的 *rightTrim:去掉右边的 *allTrim:去掉所有的 */ function trim(str){ var notValid=/(^\s)|(\s$)/; while(notValid.test(str)){ str=str.replace(notValid,"");} return str;} function leftTrim(str){ var notValid=/^\s/; while(notValid.test(str)){ str=str.replace(notValid,"");} return str;} function rightTrim(str){ var notValid=/\s$/; while(notValid.test(str)){ str=str.replace(notValid,"");} return str;} function allTrim(str){ var notValid=/\s/; while(notValid.test(str)){ str=str.replace(notValid,"");} return str;} function BtnClose_onclick() { window.close(); return true; } //email的判断。 function ismail(mail) { return(new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(mail)); } //身份证的验证 function isIdCardNo(num) { if (isNaN(num)) {alert("只能输入数字!"); return false;} var len = num.length, re; if (len == 15) re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/); else if (len == 18) re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/); else {alert("输入的数字位数不对!"); return false;} var a = num.match(re); if (a != null) { if (len==15) { var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]); var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5]; } else { var D = new Date(a[3]+"/"+a[4]+"/"+a[5]); var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5]; } if (!B) {alert("输入的身份证号 "+ a[0] +" 里出生日期不对!"); return false;} } return true; } //短时间,形如 (13:04:06) function isTime(str) { var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/); if (a == null) {alert('输入的参数不是时间格式'); return false;} if (a[1]>24 || a[3]>60 || a[4]>60) { alert("时间格式不对"); return false; } return true; } //验证短日期,形如 (2003-12-05) function isDate(str) { var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); if(r==null)return false; var d= new Date(r[1], r[3]-1, r[4]); return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]); } //长时间,形如 (2003-12-05 13:04:06) function isDateTime(str) { var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; var r = str.match(reg); if(r==null)return false; var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]); } //将阿拉伯数字翻译成中文的大写数字 function NumToChinese(num) { if(!/^\d*(\.\d*)?$/.test(num)){alert("错误的数字!"); return "";} var AA = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖"); var BB = new Array("","拾","佰","仟","萬","億","元","","角","分"); var a = (""+ num).replace(/(^0*)/g, "").split("."), k = 0, re = ""; for(var i=a[0].length-1; i>=0; i--) { switch(k) { case 0 : re = BB[7] + re; break; case 4 : if(!new RegExp("0{4}\\d{"+ (a[0].length-i-1) +"}$").test(a[0])) re = BB[4] + re; break; case 8 : re = BB[5] + re; BB[7] = BB[5]; k = 0; break; } if(k%4 == 2 && a[0].charAt(i+2) != 0 && a[0].charAt(i+1) == 0) re = AA[0] + re; if(a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k%4] + re; k++; } re += BB[6]; if(a.length>1) //加上小数部分(如果有小数部分) { for(var i=0; i<a[1].length; i++) { if (i==0) { re =re + AA[a[1].charAt(i)]+BB[8]; } else if (i==1) { re =re + AA[a[1].charAt(i)]+BB[9]; } } } return re; } //电话号码的验证 function PhoneCheck(s) { var str=s; var reg=/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/; return reg.test(str); } //弹出窗口 function MM_openBrWindow(theURL,winName,features) { //v2.0 window.open(theURL,winName,features); } //跳转页面url为要跳转向哪个页面 function skip(url) { if(document.form1.topage.value=="") { alert("请输入你想跳转到第几页"); document.form1.topage.focus(); } else { window.location=url+"?Page="+document.form1.topage.value; } } //限制文本框中只能输入数字否则提示出来 调用为:onKeyPress="regInput(/^[0-9]*$/)" function regInput(reg) { var srcElem = event.srcElement var oSel = document.selection.createRange() var srcRange = srcElem.createTextRange() oSel.setEndPoint("StartToStart", srcRange) var num = oSel.text + String.fromCharCode(event.keyCode) + srcRange.text.substr(oSel.text.length) event.returnValue = reg.test(num) if(event.returnValue=="") {alert("请输入数字"); } } function getLength(s) { var k=0; for(var i=0;i<s.length;i++) { if(s.charCodeAt(i)>255) k+=2; else k+=1; } return k; }
- calendar.rar (9.1 KB)
- 下载次数: 1
相关推荐
Excel VBA日期控件使用说明
java实现日期控件,日期控件是每个项目里,必须应用的控件,在这里给大家上传一个好用的日期控件。
js日期控件js日期控件js日期控件js日期控件
qq日期控件 qq日期控件 qq日期控件 qq日期控件
日期控件,十分好用的梅花日期控件,大家可以试着用用看
日期控件My97DatePicker的使用 日期控件My97DatePicker的使用
最好的日期控件最好的日期控件最好的日期控件最好的日期控件最好的日期控件最好的日期控件最好的日期控件
日期控件 日期选择 日期控件 日期选择日期控件 日期选择日期控件 日期选择日期控件 日期选择日期控件 日期选择日期控件 日期选择
VC/MFC 使用 日期控件 设置、获取 日期时间信息
js 日期控件 轻巧 简化 简单 日期选择 里面只有一个js文件和一个demo页面 没有其他图片等资源,放到项目里面就可以使用 轻巧,简单,无任何其他第三方插件等 极力推荐 js 日期控件 轻巧 简化 简单 日期选择 里面...
wps中excel日期控件下载
日期控件以及使用方法,求下载啊
handsontable 日期控件 中文日期 日期汉化 handsontable 日期控件 中文日期 日期汉化 handsontable 日期控件 中文日期 日期汉化
java版日期控件,tooltiptext显示对应农历,可以控制日期可选范围,如果程序中使用两个日期控件,可以控制两个控件日期范围相互约束。比如起始日期不能超过结束日期。
.net日期控件.net日期控件.net日期控件.net日期控件.net日期控件.net日期控件.net日期控件
加载的日期控件加载的日期控件加载的日期控件加载的日期控件加载的日期控件加载的日期控件加载的日期控件加载的日期控件
日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期...
日期控件,使用说明在文件是附带,日期控件,使用说明在文件是附带
一个js版的中文日期控件! 使用时调用主函数calendar()
很轻松的生成js日期控件,只要你导入就能轻松的生成日期控件,简单吧