javascript日付連動セレクタ[コードの一部は勉強に値する]

4313 ワード

DateSelector body{margin:0 px;padding:0 px;font-size:12 px;}21691;嗳year、38078;date{width:60 px;margin-right:3 px;}var==function(id)var Exted=function(destination、source){for(var pro in source){destination[pro]=source(pro))=returndestination;var adEvent= function(obj、type、fn){if(ob.jddEventEventjininininindededededededededededededededededededededededededededeststststststinininininininininininininininininininininininininininininininininininininininininininininininininininininination))){iobj[e'+type+fn]=fn;obj[type+fn]=function(){obj'+type+fn](window.event);obj.atachEvent('on'+type、[type+fn];return true;}return False"/*!DateSelector*Copyright(c)2009 GoodNess2010*Date:2009-12-15(火曜日)*funcededededededededededededededededededededededettttttttttd 2010*2009 2009-12-15(火曜日)*functtdedededededededededededededededededededededededededededent:2009-12-12-15(火曜日)*functtdededededede. monoth=$(idMonth);this.date=$;this.nowYear=D.getFulllYear();this.nowMonth=D.getMonth()+1;this.nowDate=D.getDate();Exted(this、this.setsOptions);Datelector.prototytytytype=totooptitttftttfttttttttftiting=5===============================Extentntntntntentttttttttttttttttttttttttttttttchchchchを選択します./現在の年から7年後のオンサイト:function(){}"return Exted(this.options,options,optitions𞓜𞓜;𞓜;;;;;;;,createOption:function(container,start,end,sign){sign=sign=sign==============================================================================================================lt;_num;i+){container.options[i].text=container.options[i]value=start+i;)container. selectedIndex=(sign-start>=_num?_num?_num-1:sign-start))},getDate:function(y,m){return new Date(y,m,0).getDaDaDate()),getdededededededededededededededededededededededededetDatdededededededededededededededededededededededededededededededededededededededeltDatDatdedededededededededededededededededeltr_this=this;addEvent(bindO,‘change’,function(){var y=_this.getSelText(_this.year)、m=_this.getSelText(_this.moth)、d=_this.getsSelText(_this.date)、_this.dantioion(_this.date,1,_this.getDate(y,m)、funtis;Entabithis=Eventathbithis=EEnthihihihihihihi=Entathbithis=Enthihihihihihi=Entathis=Entinininininininininininininininine(Entatototototosh=Entattis.chageDate(this.moneth);addEvent(this.date、'change',function(){_this.onEnd()},init:function()「var startYear=parseInt(this.nowYear-this.flooor Year,10);var_endYear=parseInt(this.nowYear+thisc.eelYear,10);var endDate=this. getDate(this. thisatototototototoshsh,Mothththththththisatotototototoshshshsh,Mothininininininininininininininininininatototototototototototototoshshshshshshsh,tototototototoshshshshshshshsh,EEEEEwYear;this.create Option(this.moth,1,12,this.nowMonth);this.create Option(this.date,1,_endDate,this.nowDate);this.bindEvents();this.onStart();var dateSelector=new DateSelector('year',moth','date'、{florYear:1);datetededededededededededededededededededededededededededededededededededededededededededet=dante=dante=dededededededededededet=dededededededet=date((((((({fffffffffflorYrerererere)+'年'+('0'+this.get SelText(this.moneth).slice(-2)+'月'+('0'+this.get Sel Text(this.date).slice(-2)+'日';dateSelector.init();
[Ctrl+A全選注:外部Jsを導入するにはリフレッシュが必要です.]
[パラメータ説明]
var dateSelector=new DateSelector(年間IDを引いて、月下IDを引いて、日下はIDを引き延ばして、{floor Year:前へ何年、ceilYear:後何年};
dateSelector.onStart=dateSelector.onEnd=function()//カスタム開始イベント
$('info').innerHTML=this.getsSel Text(this.year)+年'+
('0'+this.get SelText(this.moth).slice(-2)+'月'+
('0'+this.get Sel Text(this.date).slice(-2)+'日';
)
dateSelector.init()//初期化開始
[説明文字]
ここでoptionを生成する方法は、規則的なoptions[i].text=options[i].value=iを選択します.
期間中にこの方法を使ったことがあります.
container.options[container.options.length]=new Option(i,false,(i=sign?true))
このnew Optionには4つのパラメータがあります.最後のパラメータは選択できます.
しかし、公式資料はまだ確認されていません.IE 6でもBUGに遭遇しました.みなさんが使ったものは教えてください.
BUGプレゼンテーション
これはIE 7では、IE 8、FF 3などは大丈夫ですが、IE 6では前の方が選択されます.まだ原因は分かりません.
テストコード:
<bragt;<!--
<bragt;var osel=document.getElement ById('year')
<bragt;var sign=2008;
<bragt;for(var i=2001;i<2010;i+){
<bregt;osel.options=new Option(i,i,false,(i==sign?true);
<bragt;
<bragt///>
<bragt;