自已做一个不就完了吗,够lan

解决方案 »

  1.   

    <select name=cYear></select>年
    <select name=cMonth></select>月<SCRIPT LANGUAGE=javascript>
    <!--
    function addItem(obj,text,value)
    {
    var o=document.createElement("option");
    o.text=text;
    o.value=value;
    obj.add(o);
    }var startY=2002;
    var startM=1;
    for(var i=0;i<50;i++){
    cY=startY-i;
    addItem(document.all.cYear,cY.toString(),cY.toString());
    }
    for(var i=0;i<12;i++){
    cM=startM+i;
    addItem(document.all.cMonth,cM.toString(),cM.toString());
    }
    //-->
    </SCRIPT>
      

  2.   

    真巧﹐剛寫完test.htm===================
    <script>
    function getYM(s){
    var strFeatures = "dialogWidth=180px;dialogHeight=135px;center=yes;help=no;scroll=no";
    var sDate = showModalDialog("getYM.htm","",strFeatures);
    if (sDate)s.value = sDate
    }
    </script>
    <input type=text name="date">
    <input type=button value="......" onclick="getYM(document.all('date'))">
    getYM.htm=====================================
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=big5">
    <script language="javascript">
    var d=new Date()
    sYear=d.getFullYear()
    sMonth=d.getMonth() + 1function ini(){
    var t=document.all('yMonth')
    t.rows[0].cells[1].innerText= sYear - 1
    t.rows[0].cells[2].innerText= sYear
    t.rows[0].cells[2].className="thSelect"
    t.rows[0].cells[2].id="downTh"
    t.rows[0].cells[3].innerText= sYear + 1
    t.rows[0].cells[4].innerText= sYear + 2
    if (sMonth>5){
    t.rows[2].cells[sMonth - 7].className="tdDown"
    t.rows[2].cells[sMonth - 7].id="downTd"
    }
    else{
    t.rows[1].cells[sMonth - 1].className="tdDown"
    t.rows[1].cells[sMonth - 1].id="downTd"
    }
    }function yearChange(n){
    var e=event.srcElement.parentElement
    e.cells[1].innerText = parseInt(e.cells[1].innerText) + parseInt(n)
    e.cells[2].innerText = parseInt(e.cells[2].innerText) + parseInt(n)
    e.cells[3].innerText = parseInt(e.cells[3].innerText) + parseInt(n)
    e.cells[4].innerText = parseInt(e.cells[4].innerText) + parseInt(n)
    sYear = parseInt(sYear) + parseInt(n)
    }function getYM(){
    var d=new Date()
    var y=d.getFullYear()
    var m=d.getMonth()
    window.returnValue = y+'/'+m;
    window.close();
    }</script>
    <style>
    .{font:10pt;cursor:hand;margin:0pt;}
    th.thYear{color:#ffffff;background-color:#000000;}
    th.thSelect{color:#ff0000;back-ground:#000000;}
    td.tdMonth{text-align:center;border:2pt solid #c6c6c6;}
    td.tdMove{text-align:center;border: 2px outset rgb(255,255,255)}
    td.tdDown{text-align:center;border: 2px inset rgb(255,255,255);background-color:#ffffff;}
    </style>
    </head><BODY onload="ini()">
    <table id="yMonth" name="yMonth" border="1" bordercolorlight="#0053a6" bordercolordark="#ffffff" cellpadding="1" cellspacing="0">
    <th width="28" bgcolor="#ff0000" onclick="yearChange(-4)" style="color:#00ffff;"><<
    <th width="28" class="thYear">2000
    <th width="28" class="thYear">2001
    <th width="28" class="thYear">2002
    <th width="28" class="thYear">2003
    <th width="28" bgcolor="#ff0000" onclick="yearChange(4)" style="color:#00ffff;">>></th>
    <tr bgcolor="#c6c6c6">
    <td class="tdMonth">1</td>
    <td class="tdMonth">2
    <td class="tdMonth">3
    <td class="tdMonth">4
    <td class="tdMonth">5
    <td class="tdMonth">6</td></tr>
    <tr align="center" bgcolor="#c6c6c6">
    <td class="tdMonth">7
    <td class="tdMonth">8
    <td class="tdMonth">9
    <td class="tdMonth">10
    <td class="tdMonth">11
    <td class="tdMonth">12</td></tr>
    <tr align="center" bgcolor="#848484" style="color:#ffffff">
    <td colspan=2 onclick="getYM()">本年月
    <td colspan=2 onclick="window.returnValue = sYear + '/' + sMonth;window.close();">確定
    <td colspan=2 onclick="window.close();">返回</td>
    </tr>
    </table>
    </body>
    <script>
    function yMonth.onmouseover(){
    var e=event.srcElement;
    if (e.className=="tdMonth"){
    e.className="tdMove"
    }
    }function yMonth.onmouseout(){
    var e=event.srcElement;
    if (e.className=="tdMove"){
    e.className="tdMonth"
    }
    }function yMonth.onmousedown(){
    var e=event.srcElement;
    if (e.className=="tdMove"){
    e.className="tdDown"
    var s=document.all('downTd')
    s.className="tdMonth"
    s.id=''
    e.id="downTd"
    sMonth=e.innerText
    }
    if (e.className=="thYear"){
    e.className="thSelect"
    var s=document.all('downTh')
    s.className="thYear"
    s.id=''
    e.id="downTh"
    sYear=e.innerText
    }
    }
    </script>
    </html>
      

  3.   

    谢谢雨中人,但是我需要的是一个控件。
    to  liuzxit(升职无希望﹐盼望加工资) :
    你的好东西,我试过了,感觉还不错,但是好象选择之后,不能写到文本框去。另外,你能不能提供象梅花雨那种,点击图片或者按钮之后,才出现月历呢。谢谢。
    分不够,再加!!!1
      

  4.   

    OK﹗這次一下改善了全部問題﹐很久沒得分﹐值100吧﹐呵呵﹗
    正打算把萬年歷也改過來﹐以后給你吧getYM.htm============
    <script language="javascript" src="getYM.js"></script>
    <input type="text" id="date">
    <input type="button" value="click here" onclick="getYM(document.all('date'))">
    <input type="text" id="date1">
    <input type="button" value="click here" onclick="getYM(document.all('date1'))">
    <br>adgagagafhafhafdgadfgafg<select><option>asdag</option></select>
    getYM.js=================
    /*name:獲取年月控件
    author:liuzxit
    design-date:2002/12/19
    note:在IE5.5下測試通過
    */var tarObject
    var d=new Date()
    sYear=d.getFullYear()
    sMonth=d.getMonth() + 1popup = window.createPopup()
    popBody = popup.document.body
    popBody.style.border="outset 1pt #cccccc"
    popBody.style.fontSize = "9pt"
    popBody.style.backgroundColor= "#c6c6c6"
    popBody.style.cursor="hand"var strPop='<table id="yMonth" author="liuzxit" border="1" bordercolorlight="#0053a6" bordercolordark="#ffffff" cellpadding="1" cellspacing="0" style="font-size:9pt;">'
    strPop+='<th width="28" bgcolor="#ff0000" onclick="parent.yearChange(-4)" style="color:#00ffff;"><<'
    strPop+='<th width="28" bgcolor="#000000" style="color:#ffffff" onclick="parent.selectClicked(this)">'+(sYear - 2)
    strPop+='<th width="28" bgcolor="#000000" style="color:#ffffff" onclick="parent.selectClicked(this)">'+(sYear - 1)
    strPop+='<th width="28" bgcolor="#ffffff" style="color:#ff0000" onclick="parent.selectClicked(this)">'+sYear
    strPop+='<th width="28" bgcolor="#000000" style="color:#ffffff" onclick="parent.selectClicked(this)">'+(sYear + 1)
    strPop+='<th width="28" bgcolor="#ff0000" onclick="parent.yearChange(4)" style="color:#00ffff;">>></th>'
    strPop+='<tr align="center"><td style="border:solid 1pt #c6c6c6;" onmouseover="parent.tdMove(this)" onmouseout="parent.tdOut(this)" onclick="parent.selectClicked(this)">1'
    strPop+='<td style="border:solid 2pt #c6c6c6;" onmouseover="parent.tdMove(this)" onmouseout="parent.tdOut(this)" onclick="parent.selectClicked(this)">2'
    strPop+='<td style="border:solid 2pt #c6c6c6;" onmouseover="parent.tdMove(this)" onmouseout="parent.tdOut(this)" onclick="parent.selectClicked(this)">3'
    strPop+='<td style="border:solid 2pt #c6c6c6;" onmouseover="parent.tdMove(this)" onmouseout="parent.tdOut(this)" onclick="parent.selectClicked(this)">4'
    strPop+='<td style="border:solid 2pt #c6c6c6;" onmouseover="parent.tdMove(this)" onmouseout="parent.tdOut(this)" onclick="parent.selectClicked(this)">5'
    strPop+='<td style="border:solid 2pt #c6c6c6;" onmouseover="parent.tdMove(this)" onmouseout="parent.tdOut(this)" onclick="parent.selectClicked(this)">6</td></tr>'
    strPop+='<tr align="center"><td style="border:solid 1pt #c6c6c6;" onmouseover="parent.tdMove(this)" onmouseout="parent.tdOut(this)" onclick="parent.selectClicked(this)">7'
    strPop+='<td style="border:solid 2pt #c6c6c6;" onmouseover="parent.tdMove(this)" onmouseout="parent.tdOut(this)" onclick="parent.selectClicked(this)">8'
    strPop+='<td style="border:solid 2pt #c6c6c6;" onmouseover="parent.tdMove(this)" onmouseout="parent.tdOut(this)" onclick="parent.selectClicked(this)">9'
    strPop+='<td style="border:solid 2pt #c6c6c6;" onmouseover="parent.tdMove(this)" onmouseout="parent.tdOut(this)" onclick="parent.selectClicked(this)">10'
    strPop+='<td style="border:solid 2pt #c6c6c6;" onmouseover="parent.tdMove(this)" onmouseout="parent.tdOut(this)" onclick="parent.selectClicked(this)">11'
    strPop+='<td style="border:solid 2pt #c6c6c6;" onmouseover="parent.tdMove(this)" onmouseout="parent.tdOut(this)" onclick="parent.selectClicked(this)">12</td></tr>'
    strPop+='<tr align="center" bgcolor="#848484" style="color:#ffffff"><td colspan=3 onclick="parent.selectClicked(this)">本年月'
    strPop+='<td colspan=3 onclick="parent.hidePop();">關閉</td></tr>'
    strPop+='</table>'
    popBody.innerHTML=strPopfunction tdMove(e){e.style.border="outset 2pt #ffffff"}
    function tdOut(e){e.style.border="solid 2pt #c6c6c6"}
    function yearChange(n){
    var e=popup.document.all('yMonth')
    e.cells[1].innerText = parseInt(e.cells[1].innerText) + parseInt(n)
    e.cells[2].innerText = parseInt(e.cells[2].innerText) + parseInt(n)
    e.cells[3].innerText = parseInt(e.cells[3].innerText) + parseInt(n)
    e.cells[4].innerText = parseInt(e.cells[4].innerText) + parseInt(n)
    var reg=/(\d{4})(\/)(\d{1,2})/
    var r=reg.exec(tarObject.value)
    tarObject.value=(parseInt(r[1])+n)+'/'+r[3]
    }function selectClicked(e){
    var p=e.parentElement
    switch(p.rowIndex){
    case 0:for(var i=1;i<5;i++){
    p.cells[i].style.backgroundColor='#000000';
    p.cells[i].style.color='#ffffff';
    }
    e.style.backgroundColor='#ffffff';
    e.style.color='#ff0000';
    tarObject.value=tarObject.value.replace(/(\d{4})(\/)(\d{1,2})/,e.innerText+'/$3');
    break;
    case 3:tarObject.value=sYear+'/'+sMonth;
    popup.hide();
    break;
    default:
    tarObject.value=tarObject.value.replace(/(\d{4})(\/)(\d{1,2})/,'$1/'+e.innerText);
    e.style.border="solid 1pt #c6c6c6"
    popup.hide();
    break;
    }
    }function hidePop(){popup.hide()}
    function getYM(s){
    tarObject=s
    if (s.value=='')s.value=sYear+'/'+sMonth

    var reg=/(\d{4})(\/)(\d{1,2})/
    var r=reg.exec(s.value)
    if (r!=null){
    var e=popup.document.all('yMonth').rows[0]
    for (var i=1;i<5;i++){
    if (e.cells[i].style.color=='#ff0000'){
    s.value=e.cells[i].innerText+'/'+r[3]
    yearChange(r[1] - e.cells[i].innerText);
    break;
    }
    }
    }
    var e=event.srcElement
    popup.show(e.pixelLeft,e.clientHeight+5,196,84,e)
    }
      

  5.   

    把popup.show(e.pixelLeft,e.clientHeight+5,196,84,e)
    改一下:把e.pixelLeft改成-70或其他數字
      

  6.   

    to 雨中人:到底怎么弄那?因为本人对javascript也不是很熟,而且也没时间去研究,所以只有请教你了
    to liuzxit(升职无希望﹐盼望加工资) :你给的那个我看过了,好象不是什么控件啊?只是点击按钮把日期写到文本框而已,要出现那种月历选择界面才好啊。有方法嘛?
      

  7.   

    你是用什么做的你么什么控件,要ASP.NET的还是什么
    用户控件,还是自定义控件