简约JS日历控件 实例代码


Posted in Javascript onJuly 12, 2013

运行结果如下:

简约JS日历控件 实例代码

<script type="text/javascript" language="javascript">
function choose_date_czw(date_id,objtd){
if(date_id=="choose_date_czw_close"){
    document.getElementByIdx_x_x("choose_date_czw_id").style.display="none";
    return;
}
if(objtd!=undefined){
    if(objtd=="choose_date_czw_empty"){
        document.getElementByIdx_x_x(date_id).value="";
    }else{
        var year1 = document.getElementByIdx_x_x("choose_date_czw_year").value;
        var month1 = document.getElementByIdx_x_x("choose_date_czw_month").value;
        document.getElementByIdx_x_x(date_id).value=year1+"-"+month1+"-"+objtd.innerHTML;
    }
    document.getElementByIdx_x_x("choose_date_czw_id").style.display="none";
    return;
}
var nstr=new Date(); //当前
if(document.getElementByIdx_x_x("choose_date_czw_year")!=null){
    var year = document.getElementByIdx_x_x("choose_date_czw_year").value;
    var month = document.getElementByIdx_x_x("choose_date_czw_month").value;
    var str=year+"/"+month+"/1";
    nstr=new Date(str); //当前
}
var ynow=nstr.getFullYear(); //年份
var mnow=nstr.getMonth(); //月份
var dnow=nstr.getDate(); //今日日期
var n1str=new Date(ynow,mnow,1); //当月第一天
var firstday=n1str.getDay(); //当月第一天星期几
function is_leap(year) {
   return (year0==0 ? res=(year@0==0 ? 1 : 0) : res=(year%4==0 ? 1: 0));
}
var dstr="<select id=\"choose_date_czw_year\" onchange=\"choose_date_czw('"+date_id+"')\">";
for(var y=1901;y<2050;y++){
    if(y==ynow){
        dstr+="<option value='"+y+"' selected>"+y+"</option>"
    }else{
        dstr+="<option value='"+y+"'>"+y+"</option>"
    }
}
dstr+="</select> <select id=\"choose_date_czw_month\" onchange=\"choose_date_czw('"+date_id+"')\">";
for(var m=1;m<13;m++){
    if(parseInt(mnow+1)==m){
        dstr+="<option value='"+m+"' selected>"+m+"</option>"
    }else{
        dstr+="<option value='"+m+"'>"+m+"</option>"
    }
}
dstr+="</select> <span style='cursor:pointer;' onclick=\"choose_date_czw('choose_date_czw_close')\">关闭</span>|<span style='cursor:pointer;' onclick=\"choose_date_czw('"+date_id+"','choose_date_czw_empty')\">清空</span>";
//一三五七八十腊(十二月),三十一日永不差;四六九冬(十一月)三十日,唯有二月二十八(闰年二十九).
var m_days = new Array(31,28+is_leap(ynow),31,30,31,30,31,31,30,31,30,31);
var tr_str=Math.ceil((m_days[mnow] + firstday)/7);
dstr+="<table border='0' cellpadding='5' cellspacing='0'><tr><td>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr>";
var dqdate=new Date(); //当前
for(i=0;i<tr_str;i++) { //外层for语句- tr标签
   dstr+="<tr>";
   for(k=0;k<7;k++) { //内层for语句- td标签
      idx=i*7+k; //表格单元的自然序号
      date_str=idx-firstday+1; //计算日期
     if(date_str<=0 || date_str>m_days[mnow]){
          dstr+="<td> </td>";
     }else{
        if(ynow==dqdate.getFullYear() && mnow==dqdate.getMonth() && dqdate.getDate()==date_str){
            dstr+="<td onmouseover=\"this.style.backgroundColor='#6FF'\" onmouseout=\"this.style.backgroundColor='#fff'\" onclick=\"choose_date_czw('"+date_id+"',this)\" style='cursor:pointer; background-color:#6FF;'>"+date_str+"</td>";
        }else{
            dstr+="<td onmouseover=\"this.style.backgroundColor='#6FF'\" onmouseout=\"this.style.backgroundColor='#fff'\" onclick=\"choose_date_czw('"+date_id+"',this)\" style='cursor:pointer;'>"+date_str+"</td>";
        }
     }
   }
   dstr+="</tr>";
}
dstr+="</table>";
if(document.getElementByIdx_x_x("choose_date_czw_id")==null){
var obj = document.getElementByIdx_x_x(date_id);
var odiv = document_createElement_x_x("div");
odiv.id="choose_date_czw_id";
odiv.innerHTML=dstr;
odiv.style.position="absolute";
odiv.style.border="1px #0CF solid";
odiv.style.fontSize="12px";
odiv.style.zIndex=99999;
odiv.style.top=obj.offsetTop+obj.offsetHeight+"px";
odiv.style.left=obj.offsetLeft+"px";
document.body.a(odiv);
}else{
    document.getElementByIdx_x_x("choose_date_czw_id").style.display="block";
    document.getElementByIdx_x_x("choose_date_czw_id").innerHTML=dstr;
}
}
</script>
<input type="text" id="add_date" onclick="choose_date_czw('add_date')"/>
Javascript 相关文章推荐
javascript预加载图片、css、js的方法示例介绍
Oct 14 Javascript
JavaScript中的Math 使用介绍
Apr 21 Javascript
Google Maps API地图应用示例分享
Oct 23 Javascript
javascript实现单击和双击并存的方法
Dec 13 Javascript
用JS实现图片轮播效果代码(一)
Jun 26 Javascript
使用JS中的exec()方法构造正则表达式验证
Aug 01 Javascript
Bootstrap CDN和本地化环境搭建
Oct 26 Javascript
vue 组件中添加样式不生效的解决方法
Jul 06 Javascript
layui实现下拉框三级联动
Jul 26 Javascript
详细介绍解决vue和jsp结合的方法
Feb 06 Javascript
微信小程序canvas开发水果老虎机的思路详解
Feb 07 Javascript
原生JavaScript实现贪吃蛇游戏
Nov 04 Javascript
javascript中自定义对象的属性方法分享
Jul 12 #Javascript
javascript中的toFixed固定小数位数 简单实例分享
Jul 12 #Javascript
javascript中的parseInt和parseFloat区别
Jul 12 #Javascript
JS文本框追加多个下拉框的值的简单实例
Jul 12 #Javascript
JS代码同步文本框内容的实例方法
Jul 12 #Javascript
jquery 获取标签名(tagName)示例代码
Jul 11 #Javascript
js jquery获取随机生成id的服务器控件的三种方法
Jul 11 #Javascript
You might like
用PHP代替JS玩转DOM的思路及示例代码
2014/06/15 PHP
codeigniter发送邮件并打印调试信息的方法
2015/03/21 PHP
帝国cms目录结构分享
2015/07/06 PHP
laravel ORM关联关系中的 with和whereHas用法
2019/10/16 PHP
使用git迁移Laravel项目至新开发环境的步骤详解
2020/04/06 PHP
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
JQuery中上下文选择器实现方法
2015/05/18 Javascript
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
JS动态日期时间的获取方法
2015/09/28 Javascript
javascript每日必学之循环
2016/02/19 Javascript
js实现的下拉框二级联动效果
2016/04/30 Javascript
原生js封装的一些jquery方法(详解)
2016/09/20 Javascript
jquery对Json的各种遍历方法总结(必看篇)
2016/09/29 Javascript
JS如何判断浏览器类型和详细区分IE各版本浏览器
2017/03/04 Javascript
nodejs制作爬虫实现批量下载图片
2017/05/19 NodeJs
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
自定义vue组件发布到npm的方法
2018/05/09 Javascript
Nodejs使用Mongodb存储与提供后端CRD服务详解
2018/09/04 NodeJs
React路由鉴权的实现方法
2019/09/05 Javascript
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
[52:32]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第三场 11.18
2020/11/18 DOTA
python编写爬虫小程序
2015/05/14 Python
python的构建工具setup.py的方法使用示例
2017/10/23 Python
selenium python浏览器多窗口处理代码示例
2018/01/15 Python
python提取图像的名字*.jpg到txt文本的方法
2018/05/10 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
Python判断字符串是否xx开始或结尾的示例
2019/08/08 Python
Python基于requests库爬取网站信息
2020/03/02 Python
wordpress添加Html5的表单验证required方法小结
2020/08/18 HTML / CSS
世界最大的私人旅行指南出版商:孤独星球
2016/08/23 全球购物
英国123鲜花网站:123 Flowers
2019/07/07 全球购物
澳大利亚最大的在线美发和美容零售商之一:My Hair Care & Beauty
2019/08/24 全球购物
String、StringBuffer、StringBuilder有区别
2015/09/18 面试题
2014坚持党风廉政建设思想汇报
2014/09/18 职场文书
介绍信样本
2015/01/31 职场文书