JS文件内容:
function DateInput(name,yearBegin,yearEnd)
{
this.name=name;
this.yearBegin=yearBegin;
this.yearEnd=yearEnd;
var today=new Date();
this.curYear=today.getFullYear();
this.curMonth=today.getMonth() + 1;
this.curDay=today.getDate();
this.outputHTML=DateInput_outputHTML;
this.onMonthChanged=DateInput_onMonthChanged;
this.onYearChanged=DateInput_onYearChanged;
}
function DateInput_onYearChanged()
{
var yearSelector=document.all[this.name+"_year"];
var monthSelector=document.all[this.name+"_month"];
var daySelector=document.all[this.name+"_day"];
var currentYear=parseInt(yearSelector.value);
var currentMonth=parseInt(monthSelector.value);
if(currentMonth!=2) return;
var days=30;
var isLeapYear=false;
if(currentYear % 400 == 0 || (currentYear % 4 == 0 && currentYear % 100 !=0)) days=29;
else days=28;
var html="";
daySelector.length=0;
for(i=1;i<=days;i++) daySelector.options[daySelector.length] = new Option(i,i)
}
function DateInput_onMonthChanged()
{
var yearSelector=document.all[this.name+"_year"];
var monthSelector=document.all[this.name+"_month"];
var daySelector=document.all[this.name+"_day"];
var currentYear=parseInt(yearSelector.value);
var currentMonth=parseInt(monthSelector.value);
var days=30;
var isLeapYear=false;
if(currentYear%400==0||(currentYear%4==0 && currentYear % 100!=0)) isLeapYear=true;
switch(currentMonth)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31;
}
if(currentMonth==2)
if(isLeapYear) days=29;
else days=28;
var html="";
daySelector.length=0;
for(i=1;i<=days;i++) daySelector.options[daySelector.length] = new Option(i,i)
}
function DateInput_outputHTML()
{
var html="";
var i;
html+="<select name='"+this.name+"_year' onchange='"+this.name+".onYearChanged()'>";
for(i=this.yearBegin;i<=this.yearEnd;i++)
{
html+=" <option";
if(i==this.curYear){
html+=" <option selected='selected'";
}
html+=" value='"+i+"'>"+i+"</option>";
}
html+="</select>年";
html+="<select name='"+this.name+"_month' onchange='"+this.name+".onMonthChanged()'>";
for(i=1;i<=12;i++)
{
html+=" <option";
if(i==this.curMonth)
html+=" selected='selected'";
if(i<10)
i="0"+i;
html+=" value='"+i+"'>"+i+"</option>";
}
html+="</select>月";
html+="<select name='"+this.name+"_day'>";
for(i=1;i<=31;i++)
{
html+=" <option";
if(i==this.curDay)
html+=" selected='selected'"
if(i<10)i="0" + i;
html+=" value='"+i+"'>"+i+"</option>";
}
html+="</select>日";
document.write(html);
}
HTML文件内容为:
<html>
<head>
<script src="DateInput.js"></script>
</head>
<body>
<input type="submit" disabled="disabled">
<script language="javascript">
var date1=new DateInput("date1",1900,2100);
date1.outputHTML();
</script>
</body>
</html>
分享到:
相关推荐
类似QQ邮箱中的简洁版日历,适合放到网页左下角或者后台管理页面的欢迎页面,简洁大方,通用版的
js 简易的日历控件.zip
很好用,可惜不是每个浏览器都兼容,我的JS不好。郁闷
种日历控件实现起来不难,下面简单分析下我的思路
jQuery控件简易日历表格代码是一款较为简单的显示日历的代码,兼容firefox、chrome、ie。
jQuery简易的日历插件下载是一款日历日期代码。
主要和大家一起学写js Calender控件,自己动手编写了一个简易日历控件,感兴趣的小伙伴们可以参考一下
JS版简易日期选择器。兼容IE6、IE7、FF3。1900-2099年之间,可以设置是否选择时分秒、最大最小日期、双日期选择相互制约等。前段时间因一项目需要而编写。放出共享。
简易日历作为javascript中Date对象的常见应用,用途较广泛,本文将详细说明简易日历的实现思路。 效果演示 HTML说明 使用type=number的两个input分别作为年和月的输入控件,这样在高级浏览器下自带调节按钮 ...
使用vue写的一个简单的日历
12) 使用帮助.CHM文件中增加控件内置属性的说明列表(简易形式)。 13) 此版本是稳定版本,以后架构将不会再作大的更新,如果有增加功能或者修正BUG将会采用增量更新包形式提供。 <br>2007/7/04 Version ...
My97DatePicker一款简易前端日期控件,自带格式验证功能,使用很简单,input标签引用对应的class即可
解决论坛首页无图片+调试状态js报错的bug 菜单:解决添加本地abcd.html 多出abcd.html.aspx 后缀的问题 1.6新版特别推荐 微博功能: 1)支持优酷、土豆、ku6、56网的视频,但要注意的是,视频必须是播放页的...
Asp.net 2.0功能体验,细节之Web控件(一) 隐藏控件 Asp.net 2.0功能体验,总体设计思想 Asp.net 2.0 WebPart使用经验点滴 革新:.NET 2.0的自定义配置文件体系初探 关于如何在ASP.NET 2.0中定制Expression ...
图形式、动态的控制,用于日期选择。 容器 支援大量的DHTML视窗规范包括 提示框(Tooltip)、面板、对话框、简易对话框、模组与覆盖层(Overlay)。 资料表 简单且强大的应用程式接口用来显示网页上屏幕阅读器可存取...
实验日期:2018年 4月23日 地点:计算机学院综合试验中心(I-303) 实验学时:4 实验成绩: 指导教师签字: 2018年 5月21日 1. 问题需求描述:Problem description 利用Java Swing设计计算器图形化界面,并实现事件的...