求结束日期下拉框随开始日期下拉框变化的代码

cfjun 2009-06-08 10:55:55
<SELECT name="stime" onChange="endazhe()">
<option value=''>开始日期</option>
<option value='2009-6-8'>2009年6月8日</option>
<option value='2009-6-9'>2009年6月9日</option>
<option value='2009-6-10'>2009年6月10日</option>
<option value='2009-6-11'>2009年6月11日</option>
<option value='2009-6-12'>2009年6月12日</option>
</SELECT>

要求选择开始日期的改变结束日期下拉框中的日期
例如选择10日,结束日期应是10日-14日
结束日期为
<SELECT name="stime" onChange="endazhe()">
<option value=''>结束日期</option>
<option value='2009-6-10'>2009年6月10日</option>
<option value='2009-6-11'>2009年6月11日</option>
<option value='2009-6-12'>2009年6月12日</option>
<option value='2009-6-13'>2009年6月13日</option>
<option value='2009-6-14'>2009年6月14日</option>
</SELECT>
如果选择11日,结束日期应是11日-15日
.
.
.
依次类推
...全文
82 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cfjun 2009-06-09
  • 打赏
  • 举报
回复
晕啊,怎么没人回贴呢?我都快想出来了,真郁闷以前不知道好好学习弄的现在连JS都不懂
Msxindl_Com 2009-06-09
  • 打赏
  • 举报
回复
我崩溃.
cfjun 2009-06-09
  • 打赏
  • 举报
回复
非常感谢,感谢CCTV MTV,都是非常好的代码,让我学到不少东西
特别是hookee让我知道月份先-1,再+1的办法解决了月天数显示错误的问题
这是我自己写的代码,望指点
function endazhe(tn)
{
str=document.myform.stime.value;
etime=document.myform.etime;
etime.length=0;
if(str!='')
{
str=str.split("-")
etime.disabled=false;
etime.options[0] = new Option('请选择结束日期','');
for (i=0;i <30; i++)
{
var myday = new Date(parseInt(str[0]),parseInt(str[1])-1,parseInt(str[2])+i);
yw=myday.getFullYear()+'-'+(myday.getMonth()+1)+'-'+myday.getDate();
zw=myday.getFullYear()+'年'+(myday.getMonth()+1)+'月'+myday.getDate()+'日';
etime.options[i+1] = new Option(zw,yw);
if(tn==yw)etime.options[i+1].selected=true;
}
}
else
{
etime.disabled=true;
etime.options[0] = new Option('先选择开始日期','');
}
}
Msxindl_Com 2009-06-09
  • 打赏
  • 举报
回复
给你个最精简的代码:


<script language="VBScript">
function endazhe()
window.Etime.options.length=1
dim xx,yy
yy=window.stime.value
if yy="" then
exit function
end if
xx=CDate(yy)
for i=0 to 4
set yy=document.createElement("option")
yy.text=formatdatetime((xx+i),1)
yy.value=xx+i
window.Etime.add(yy)
next
end function
</script>
<SELECT name="stime" style="width:115px" onChange="endazhe()">
<option value="">开始日期</option>
<option value="2009-6-8">2009年6月8日</option>
<option value="2009-6-9">2009年6月9日</option>
<option value="2009-6-10">2009年6月10日</option>
<option value="2009-6-11">2009年6月11日</option>
<option value="2009-6-12">2009年6月12日</option>
</SELECT>
<SELECT style="width:115px" name="Etime">
<option value="">结束日期</option>
</SELECT>
hookee 2009-06-09
  • 打赏
  • 举报
回复

<SCRIPT LANGUAGE="JavaScript">
function endazhe(obj){
if(obj.selectedIndex==0) return false;
var v = obj.options[obj.selectedIndex].value;
var y = parseInt(v.split("-")[0]);
var m = parseInt(v.split("-")[1])-1;
var d = parseInt(v.split("-")[2]);
var dt = new Date(y,m,d);
y = dt.getFullYear();
m = dt.getMonth();
d = dt.getDate();

var sel = document.forms[0].Etime;
var n = sel.options.length;
for(var i=0;i<n;i++) sel.options.remove(0);
//sel.innerHTML = "";
for(var i=0;i<5;i++){
var ndt = new Date(y,m,d+i);
var opt = document.createElement("option");
opt.value = getED(ndt);
opt.text = getCD(ndt);
sel.options.options.add(opt);
}
}
function getCD(dt){
var y = dt.getFullYear();
var m = dt.getMonth()+1;
var d = dt.getDate();
return y + "年" + m + "月" + d + "日";
}
function getED(dt){
var y = dt.getFullYear();
var m = dt.getMonth()+1;
var d = dt.getDate();
return y + "-" + m + "-" + d;
}
</script>
<form>
<SELECT name="stime" onChange="endazhe(this)">
<option value=''>开始日期 </option>
<option value='2009-6-8'>2009年6月8日 </option>
<option value='2009-6-9'>2009年6月9日 </option>
<option value='2009-6-10'>2009年6月10日 </option>
<option value='2009-6-11'>2009年6月11日 </option>
<option value='2009-6-12'>2009年6月12日 </option>
</SELECT>
<SELECT name="Etime">
</SELECT>
</form>
heatonc 2009-06-08
  • 打赏
  • 举报
回复
是不是想要2级联动?
我的代码在公司 明天贴给你 先留帖!
cfjun 2009-06-08
  • 打赏
  • 举报
回复
没人回答自己顶
结束日期代码搞错了,用该是
<SELECT name="Etime">
<option value=''>结束日期 </option>
<option value='2009-6-10'>2009年6月10日 </option>
<option value='2009-6-11'>2009年6月11日 </option>
<option value='2009-6-12'>2009年6月12日 </option>
<option value='2009-6-13'>2009年6月13日 </option>
<option value='2009-6-14'>2009年6月14日 </option>
</SELECT>

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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