亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript實現的日期控件具體代碼

2019-11-20 21:40:06
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

<html>
<head>
<style>
<!--
.wr{font-size: 12pt; line-height: 22px}
.wr1 {  FONT-SIZE: 12px; LINE-HEIGHT: 200%}
.wr2 {  FONT-SIZE: 14px; LINE-HEIGHT: 200%}
.wr3 {  FONT-SIZE: 12px}
.wr4 {  FONT-SIZE: 12px; LINE-HEIGHT: 150%}
// -->
</style>

<title>日期自動輸入控件</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<style type="text/css">
.date-picker-wp {
display: none;
position: absolute;
background: #f1f1f1;
left: 40px;
top: 40px;
border-top: 4px solid #3879d9;
}
.date-picker-wp table {
border: 1px solid #ddd;
}
.date-picker-wp td {
background: #fafafa;
width: 22px;
height: 18px;
border: 1px solid #ccc;
font-size: 12px;
text-align: center;
}
.date-picker-wp td.noborder {
border: none;
background: none;
}
.date-picker-wp td a {
color: #1c93c4;
text-decoration: none;
}
.strong {font-weight: bold}
.hand {cursor: pointer; color: #3879d9}
</style>

<script type="text/javascript">
var DatePicker = function () {
var $ = function (i) 
{
   return document.getElementById(i)
},
addEvent = function (o, e, f) {o.addEventListener ? o.addEventListener(e, f, false) : o.attachEvent('on'+e, function(){f.call(o)})},
getPos = function (el) {
for (var pos = {x:0, y:0}; el; el = el.offsetParent) {
pos.x += el.offsetLeft;
pos.y += el.offsetTop;
}
return pos;
};
var init = function (n, config) {
window[n] = this;
Date.prototype._fd = function () {var d = new Date(this); d.setDate(1); return d.getDay()};
Date.prototype._fc = function () {var d1 = new Date(this), d2 = new Date(this); d1.setDate(1); d2.setDate(1); d2.setMonth(d2.getMonth()+1); return (d2-d1)/86400000;};
this.n = n;
this.config = config;
this.D = new Date;
this.el = $(config.inputId);
this.el.title = this.n+'DatePicker';
this.update();
this.bind();
};
init.prototype = {
update : function (y, m) {
var con = [], week = ['Su','Mo','Tu','We','Th','Fr','Sa'], D = this.D, _this = this;
fn = function (a, b) {return '<td title="'+_this.n+'DatePicker" class="noborder hand" onclick="'+_this.n+'.update('+a+')">'+b+'</td>'},
_html = '<table cellpadding=0 cellspacing=2>';
y && D.setYear(D.getFullYear() + y);
m && D.setMonth(D.getMonth() + m);
var year = D.getFullYear(), month = D.getMonth() + 1, date = D.getDate();
for (var i=0; i<week.length; i++) con.push('<td title="'+this.n+'DatePicker" class="noborder">'+week[i]+'</td>');
for (var i=0; i<D._fd(); i++ ) con.push('<td title="'+this.n+'DatePicker" class="noborder"> </td>');
for (var i=0; i<D._fc(); i++ ) con.push('<td class="hand" onclick="'+this.n+'.fillInput('+year+', '+month+', '+(i+1)+')">'+(i+1)+'</td>');
var toend = con.length%7;
if (toend != 0) for (var i=0; i<7-toend; i++) con.push('<td class="noborder"> </td>');
_html += '<tr>'+fn("-1, null", "<<")+fn("null, -1", "<")+'<td title="'+this.n+'DatePicker" colspan=3 class="strong">'+year+'/'+month+'/'+date+'</td>'+fn("null, 1", ">")+fn("1, null", ">>")+'</tr>';
for (var i=0; i<con.length; i++) _html += (i==0 ? '<tr>' : i%7==0 ? '</tr><tr>' : '') + con[i] + (i == con.length-1 ? '</tr>' : '');
!!this.box ? this.box.innerHTML = _html : this.createBox(_html);
},
fillInput : function (y, m, d) {
var s = this.config.seprator || '/';
this.el.value = y + s + m + s + d;
this.box.style.display = 'none';
},
show : function () {
var s = this.box.style, is = this.mask.style;
s['left'] = is['left'] = getPos(this.el).x + 'px';
s['top'] = is['top'] = getPos(this.el).y + this.el.offsetHeight + 'px';
s['display'] = is['display'] = 'block';
is['width'] = this.box.offsetWidth - 2 + 'px';
is['height'] = this.box.offsetHeight - 2 + 'px';
},
hide : function () {
this.box.style.display = 'none';
this.mask.style.display = 'none';
},
bind : function () {
var _this = this;
addEvent(document, 'click', function (e) {
e = e || window.event;
var t = e.target || e.srcElement;
if (t.title != _this.n+'DatePicker') {_this.hide()} else {_this.show()}
});
},
createBox : function (html) {
var box = this.box = document.createElement('div'), mask = this.mask = document.createElement('iframe');
box.className = this.config.className || 'datepicker';
mask.src = 'javascript:false';
mask.frameBorder = 0;
box.style.cssText = 'position:absolute;display:none;z-index:9999';
mask.style.cssText = 'position:absolute;display:none;z-index:9998';
box.title = this.n+'DatePicker';
box.innerHTML = html;
document.body.appendChild(box);
document.body.appendChild(mask);
return box;
}
};
return init;
}();
onload = function () {
new DatePicker('_DatePicker_demo', {
inputId: 'date-input',
className: 'date-picker-wp',
seprator: '-'
});
}
</script>

<body bgcolor="#FFFFDB" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<form >

  <table border="0" width="60%" align="center">

   <tr>
     <td width="45%" class="wr4" align="right"> 生日:</td>
     <td width="55%" class="wr4">
         <input type="text" name="mtime" id="date-input">  <font color="RED">*</font>        
     </td>

   </tr>

  <tr> 
     <td width="45%" align="right"><input type = "submit" value = "確定"/></td> 
     <td width="55%"><input type = "reset" value = "重置"/></td> 
  </tr>
</table>

</form>
</body>
</html>

html頁面中的js執行順序:
1) 在head標簽內的最先執行
2) 在body標簽內的 執行
3) 當在 body標簽中 加了 onload  事件時 對應的 js 最后執行,也就是當頁面加載完在執行

注意:當在 body標簽中 加了 onload  事件時 在head標簽內,所引用外部的 js 不起作用,當換成 在body 內部或</html>之上引用外部js時可正常引用

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩免费观看在线观看| 亚洲免费视频观看| 国产综合香蕉五月婷在线| 亚洲乱亚洲乱妇无码| 亚洲免费电影在线观看| 欧美大片免费观看| 欧美午夜精品久久久久久浪潮| 亚洲色图第三页| 国产精品久久电影观看| 欧美亚洲午夜视频在线观看| 成人国产精品久久久久久亚洲| 国内精品久久久久久久| 国产精品91在线观看| 亚洲aa在线观看| 日韩av电影手机在线| 色综合亚洲精品激情狠狠| 久久久久久69| 亚洲视频999| 久久精品国产视频| 精品少妇一区二区30p| 亚洲人成毛片在线播放| 久久中文字幕一区| 国产精品扒开腿爽爽爽视频| 夜色77av精品影院| 久久综合免费视频影院| 亚洲激情视频网| 亚洲欧美另类中文字幕| 久久久久久久久91| 国产欧美日韩精品在线观看| 日韩精品在线电影| 亚洲美女视频网站| 亚洲r级在线观看| 亚洲老头同性xxxxx| 清纯唯美亚洲激情| 国产精品偷伦一区二区| 精品电影在线观看| 国产日产久久高清欧美一区| 亚洲自拍欧美色图| 欧美大片免费看| 日韩国产精品亚洲а∨天堂免| 久久亚洲精品国产亚洲老地址| 色综合久久88色综合天天看泰| 日韩电影免费观看在线观看| 国产欧美一区二区三区在线看| 91麻豆国产语对白在线观看| 国产色婷婷国产综合在线理论片a| 丝袜一区二区三区| 亚洲精品丝袜日韩| 久久精品99无色码中文字幕| 97成人精品视频在线观看| www国产亚洲精品久久网站| 欧美做爰性生交视频| 亚洲福利视频免费观看| 欧美极品美女视频网站在线观看免费| 国产日本欧美视频| 欧美性xxxx极品高清hd直播| 日韩电影中文字幕av| 疯狂蹂躏欧美一区二区精品| 亚洲第一综合天堂另类专| 国产91露脸中文字幕在线| 欧美日韩国产丝袜美女| 国产区亚洲区欧美区| 欧美有码在线视频| 亚洲欧美日本伦理| 色婷婷亚洲mv天堂mv在影片| 欧美成人全部免费| 亚州成人av在线| 一个人看的www久久| www.久久撸.com| 亚洲激情第一页| 久久男人的天堂| 亚洲欧美成人网| 久久精品在线视频| 亚洲免费av网址| 国产一区二区欧美日韩| 欧美激情一区二区三区成人| 精品久久久久久国产91| 国产精品久久久久99| 亚洲成人网在线| 国产欧美日韩综合精品| 国产欧美一区二区三区久久人妖| 丝袜亚洲另类欧美重口| 亚洲人线精品午夜| 在线丨暗呦小u女国产精品| 亚洲精品成人免费| 在线观看亚洲视频| 精品国产一区二区在线| 色偷偷综合社区| 精品久久久香蕉免费精品视频| 久久天天躁夜夜躁狠狠躁2022| 国产精彩精品视频| 国产精品专区h在线观看| 成人在线激情视频| 欧美激情一区二区久久久| 91国产高清在线| 国产精品久久综合av爱欲tv| 亚洲成人动漫在线播放| 中文字幕欧美日韩va免费视频| 欧美大肥婆大肥bbbbb| 国产精品一久久香蕉国产线看观看| 久久久久久久成人| 亚洲无限乱码一二三四麻| 欧美极品第一页| 日韩久久免费电影| 欧美另类xxx| 日本久久久久久| 日日噜噜噜夜夜爽亚洲精品| 少妇高潮久久久久久潘金莲| www.欧美精品一二三区| 久久伊人精品一区二区三区| 欧美另类高清videos| 91九色视频导航| 亚洲日韩中文字幕在线播放| 国产日产欧美a一级在线| 亚洲精品视频免费在线观看| 在线观看久久久久久| 97不卡在线视频| 亚洲一区二区三区成人在线视频精品| 国产精品av在线播放| 国产欧美精品va在线观看| 欧美成人一区在线| 538国产精品视频一区二区| 亚洲欧美综合区自拍另类| 亚洲女人被黑人巨大进入al| 中文字幕在线成人| 国产免费一区二区三区在线能观看| 亚洲一区二区久久久久久久| 日韩毛片中文字幕| 欧美一级在线亚洲天堂| 啪一啪鲁一鲁2019在线视频| 欧美—级a级欧美特级ar全黄| 97久久久免费福利网址| 国产午夜精品全部视频在线播放| 亚洲男人天堂古典| 亚洲午夜国产成人av电影男同| 色午夜这里只有精品| 伊人伊成久久人综合网站| 青青精品视频播放| 黑人巨大精品欧美一区二区免费| 欧美日韩国产一中文字不卡| 韩剧1988免费观看全集| 久久精品国产久精国产思思| 久久国产视频网站| 综合久久五月天| 亚洲精品999| 亚洲视频日韩精品| 日韩电影视频免费| 日韩成人av一区| 亚洲天堂男人天堂| 亚洲成av人乱码色午夜| 国产99久久精品一区二区永久免费| 亚洲精品suv精品一区二区| 日韩大片免费观看视频播放| 国产精品夫妻激情| 国产区亚洲区欧美区| 亚洲视频在线观看视频| 97人洗澡人人免费公开视频碰碰碰| 97久久精品国产| 中文字幕欧美日韩va免费视频| 深夜福利日韩在线看| 91在线高清视频| 亚洲国产成人久久| 亚洲欧美三级在线| 少妇高潮久久久久久潘金莲|