各位老大,有没有只显示年月的月历啊?

houniao 2002-12-18 01:19:13
如题,不需要显示到每一天,只需要显示每年的12月份,并可进行选择。拜托,有急用!!
...全文
49 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinyeibin 2002-12-20
  • 打赏
  • 举报
回复
你是用什么做的

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

houniao 2002-12-20
  • 打赏
  • 举报
回复
就是和梅花雨那个类似的啊,只不过换成月份而已,不明白嘛?拜托拉
liuzxit 2002-12-19
  • 打赏
  • 举报
回复
把popup.show(e.pixelLeft,e.clientHeight+5,196,84,e)
改一下:把e.pixelLeft改成-70或其他數字
sheng9hhd 2002-12-19
  • 打赏
  • 举报
回复
gz
ssm1226 2002-12-19
  • 打赏
  • 举报
回复
你只需将梅花雨最后的输出格式改下即可
liuzxit 2002-12-19
  • 打赏
  • 举报
回复
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() + 1

popup = 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=strPop

function 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)
}
liuzxit 2002-12-19
  • 打赏
  • 举报
回复
倒﹗你要的控件是怎樣?你要的月歷選擇界面又是怎樣?
houniao 2002-12-19
  • 打赏
  • 举报
回复
to 雨中人:到底怎么弄那?因为本人对javascript也不是很熟,而且也没时间去研究,所以只有请教你了
to liuzxit(升职无希望﹐盼望加工资) :你给的那个我看过了,好象不是什么控件啊?只是点击按钮把日期写到文本框而已,要出现那种月历选择界面才好啊。有方法嘛?
houniao 2002-12-18
  • 打赏
  • 举报
回复
好啊,等你好消息。如果弄好之后,麻烦你发个消息给我,或者直接写到这个帖子来!!!谢谢!
kuangxiang007 2002-12-18
  • 打赏
  • 举报
回复
因為既要選年又要選月﹐所以點"確定"才關閉并寫到文本框﹐寫成控件...還沒想過﹐不過你倒提醒我﹐考慮一下﹐如果寫好再給你
houniao 2002-12-18
  • 打赏
  • 举报
回复
谢谢雨中人,但是我需要的是一个控件。
to liuzxit(升职无希望﹐盼望加工资) :
你的好东西,我试过了,感觉还不错,但是好象选择之后,不能写到文本框去。另外,你能不能提供象梅花雨那种,点击图片或者按钮之后,才出现月历呢。谢谢。
分不够,再加!!!1
liuzxit 2002-12-18
  • 打赏
  • 举报
回复
真巧﹐剛寫完

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() + 1

function 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>
walkingpoison 2002-12-18
  • 打赏
  • 举报
回复
只需要年月的话,2个下拉框足矣
ssm1226 2002-12-18
  • 打赏
  • 举报
回复
<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>
houniao 2002-12-18
  • 打赏
  • 举报
回复
怎么没人呢?真有急用
houniao 2002-12-18
  • 打赏
  • 举报
回复
不是不做,是没时间做啊,要赶项目进度,没时间撒,要不然我也不会来这里拜托大家了撒
freefalcon 2002-12-18
  • 打赏
  • 举报
回复
候鸟
真的在等候中
:-)
titanicliu 2002-12-18
  • 打赏
  • 举报
回复
自已做一个不就完了吗,够lan

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧