简约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 相关文章推荐
JS 学习笔记 防止发生命名冲突
Jul 30 Javascript
javascript学习笔记(一) 在html中使用javascript
Jun 18 Javascript
jquery入门—数据删除与隔行变色以及图片预览
Jan 07 Javascript
Node.js模拟浏览器文件上传示例
Mar 26 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
Jun 14 Javascript
简要了解jQuery移动web开发的响应式布局设计
Dec 04 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
Jan 21 Javascript
jQuery实现隔行变色的方法分析(对比原生JS)
Nov 18 Javascript
JavaScript制作简单的框选图表
May 15 Javascript
vue服务端渲染缓存应用详解
Sep 12 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
Sep 29 Javascript
Node对CommonJS的模块规范
Nov 06 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中stream(流)的用法
2014/03/25 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
2016/01/15 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
2016/10/08 PHP
JavaScript中的Location地址对象
2008/01/16 Javascript
基于jquery的direction图片渐变动画效果
2010/05/24 Javascript
javascript温习的一些笔记 基础常用知识小结
2011/06/22 Javascript
js实现在文本框光标处添加字符的方法介绍
2012/11/24 Javascript
JS解析json数据并将json字符串转化为数组的实现方法
2012/12/25 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
jQuery中attr()方法用法实例
2015/01/05 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
利用Angularjs和bootstrap实现购物车功能
2016/08/31 Javascript
js实现类bootstrap模态框动画
2017/02/07 Javascript
JS 60秒后重新发送验证码的实例讲解
2017/07/26 Javascript
ES6 javascript的异步操作实例详解
2017/10/30 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
Python实现网站文件的全备份和差异备份
2014/11/30 Python
python&amp;MongoDB爬取图书馆借阅记录
2016/02/05 Python
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
Python实现FTP上传文件或文件夹实例(递归)
2017/01/16 Python
Python和Go语言的区别总结
2019/02/20 Python
Python使用pymongo库操作MongoDB数据库的方法实例
2019/02/22 Python
python调用webservice接口的实现
2019/07/12 Python
Python爬取某平台短视频的方法
2021/02/08 Python
python实现简单的学生管理系统
2021/02/22 Python
使用before和:after伪类制作css3圆形按钮
2014/04/08 HTML / CSS
十八大感想感言
2014/02/10 职场文书
珍惜资源的建议书
2014/08/26 职场文书
纪律教育学习心得体会
2014/09/02 职场文书
小学生成绩单评语
2014/12/31 职场文书
党员个人总结范文
2015/02/14 职场文书
超市店长竞聘书
2015/09/15 职场文书
Python 如何将integer转化为罗马数(3999以内)
2021/06/05 Python
古见同学有交流障碍症 第二季宣传CM公开播出
2022/04/11 日漫
MySQL详细讲解变量variables的用法
2022/06/21 MySQL