日期选择和显示的下拉菜单JS代码问题

garfield376 2008-04-27 12:58:47
请教各位达人,现在有如下的JS代码和其在HTML中调用,该代码为日期选择的下拉菜单,运行后自动显示当前系统日期,请问如何修改能使它打开后不要显示当前日期但仍能进行选择啊,并能正确列出每个月的天数呢?菜鸟一只,万分感谢~
<script type="text/javascript">
function createSelect(ActionFlag) {
var selYear = document.getElementById("tYEAR");
var selMonth = document.getElementById("tMON");
var selDay = document.getElementById("tDAY");
var dt = new Date();

if(ActionFlag == 1) {
MaxYear = dt.getFullYear();
MinYear = dt.getFullYear()-40;

for(var i = MaxYear; i >= MinYear; i--) {
var op = document.createElement("OPTION");
op.value = i;
op.innerHTML = i;
selYear.appendChild(op);
}
selYear.selectedIndex = 0;

for(var i = 1; i < 13; i++) {
var op = document.createElement("OPTION");
op.value = i;
op.innerHTML = i;
selMonth.appendChild(op);
}
selMonth.selectedIndex = dt.getMonth();
}

var date = new Date(selYear.value, selMonth.value, 0);
var daysInMonth = date.getDate();
selDay.options.length = 0;

for(var i = 1; i <= daysInMonth ; i++) {
var op = document.createElement("OPTION");
op.value = i;
op.innerHTML = i;
selDay.appendChild(op);
}
//alert();
selDay.selectedIndex = dt.getDate() - 1;
}
</script>


<td>
<select id="tYEAR" size="1" onChange="createSelect()"></select>
<select id="tMON" size="1" onChange="createSelect();"></select>
<select id="tDAY" size="1" ></select>
<script type="text/javascript">createSelect(1);</script> </td>

</tr>

...全文
475 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
garfield376 2008-04-27
  • 打赏
  • 举报
回复
<script type="text/javascript">createSelect(1); showDate(u.getBirthday()); </script>
无法显示调用对象函数的日期--||| 这个尚未解决
myvicy 2008-04-27
  • 打赏
  • 举报
回复
之前打开没回答,睡了一觉醒来才回,居然都揭贴了,哈哈。
myvicy 2008-04-27
  • 打赏
  • 举报
回复
屏蔽3句:
<script type="text/javascript">
function createSelect(ActionFlag) {
var selYear = document.getElementById("tYEAR");
var selMonth = document.getElementById("tMON");
var selDay = document.getElementById("tDAY");
var dt = new Date();

if(ActionFlag == 1) {
MaxYear = dt.getFullYear();
MinYear = dt.getFullYear()-40;

for(var i = MaxYear; i >= MinYear; i--) {
var op = document.createElement("OPTION");
op.value = i;
op.innerHTML = i;
selYear.appendChild(op);
}
////////////////////////// selYear.selectedIndex = 0;

for(var i = 1; i < 13; i++) {
var op = document.createElement("OPTION");
op.value = i;
op.innerHTML = i;
selMonth.appendChild(op);
}
///////////////////////////// selMonth.selectedIndex = dt.getMonth();
}

var date = new Date(selYear.value, selMonth.value, 0);
var daysInMonth = date.getDate();
selDay.options.length = 0;

for(var i = 1; i <= daysInMonth ; i++) {
var op = document.createElement("OPTION");
op.value = i;
op.innerHTML = i;
selDay.appendChild(op);
}
//alert();
///////////////////////////////// selDay.selectedIndex = dt.getDate() - 1;
}
</script>
myvicy 2008-04-27
  • 打赏
  • 举报
回复
屏蔽3句:
<script type="text/javascript">
function createSelect(ActionFlag) {
var selYear = document.getElementById("tYEAR");
var selMonth = document.getElementById("tMON");
var selDay = document.getElementById("tDAY");
var dt = new Date();

if(ActionFlag == 1) {
MaxYear = dt.getFullYear();
MinYear = dt.getFullYear()-40;

for(var i = MaxYear; i >= MinYear; i--) {
var op = document.createElement("OPTION");
op.value = i;
op.innerHTML = i;
selYear.appendChild(op);
}
////////////////////////// selYear.selectedIndex = 0;

for(var i = 1; i < 13; i++) {
var op = document.createElement("OPTION");
op.value = i;
op.innerHTML = i;
selMonth.appendChild(op);
}
///////////////////////////// selMonth.selectedIndex = dt.getMonth();
}

var date = new Date(selYear.value, selMonth.value, 0);
var daysInMonth = date.getDate();
selDay.options.length = 0;

for(var i = 1; i <= daysInMonth ; i++) {
var op = document.createElement("OPTION");
op.value = i;
op.innerHTML = i;
selDay.appendChild(op);
}
//alert();
///////////////////////////////// selDay.selectedIndex = dt.getDate() - 1;
}
</script>
lawrendc 2008-04-27
  • 打赏
  • 举报
回复
不好意思 jsp不懂
garfield376 2008-04-27
  • 打赏
  • 举报
回复
<script type="text/javascript">createSelect(1); showDate(u.getBirthday()); </script>用了这个语句,发觉不行~><~
我把页面的JSP代码发你,帮我看看行不?非常感谢
lawrendc 2008-04-27
  • 打赏
  • 举报
回复
调用showDate()只要你传入的是一个正确的日期就行了塞

取得你当前选中的日期

var $=document.getElementById;

var selDate=new Date($("tYEAR").options.selectedIndex,$("tMON").options.selectedIndex-1,$("tDAY").options.selectedIndex);

//selDate就为当前选中的日期 用asp jsp asp.net或其他可以的方式存入数据库就行了


garfield376 2008-04-27
  • 打赏
  • 举报
回复
再请教楼上,该段代码中调用showDate(); 参数new Date(2006,03,06)已为设定值,能否使函数能调用函数,例如maker.getBirthday(),然后下拉框显示该日期?
另外,如果我要将一个下拉菜单显示的日期,以DATE类型读入数据库的话,该怎样处理?
lawrendc 2008-04-27
  • 打赏
  • 举报
回复
呵呵 记得要结贴哦
garfield376 2008-04-27
  • 打赏
  • 举报
回复
太感谢了...TT...
lawrendc 2008-04-27
  • 打赏
  • 举报
回复
全代码:

<html>
<head>
<title>信息采集</title>
<script type="text/javascript">
function showDate(u){
var year=u.getFullYear();
var month=u.getMonth()-1;
var day=u.getDate()-1;

var $=document.getElementById;
$("tYEAR").options.selectedIndex=2008-year;
$("tMON").options.selectedIndex=month;
$("tDAY").options.selectedIndex=day;

}

function createSelect(ActionFlag) {
var selYear = document.getElementById("tYEAR");
var selMonth = document.getElementById("tMON");
var selDay = document.getElementById("tDAY");
var dt = new Date();

if(ActionFlag == 1) {
MaxYear = dt.getFullYear();
MinYear = dt.getFullYear()-40;

for(var i = MaxYear; i >= MinYear; i--) {
var op = document.createElement("OPTION");
op.value = i;
op.innerHTML = i;
selYear.appendChild(op);
}
//selYear.selectedIndex = 0;

for(var i = 1; i < 13; i++) {
var op = document.createElement("OPTION");
op.value = i;
op.innerHTML = i;
selMonth.appendChild(op);
}
//selMonth.selectedIndex = dt.getMonth();
}

var date = new Date(selYear.value, selMonth.value, 0);
var daysInMonth = date.getDate();
selDay.options.length = 0;

for(var i = 1; i <= daysInMonth ; i++) {
var op = document.createElement("OPTION");
op.value = i;
op.innerHTML = i;
selDay.appendChild(op);
}
//alert();
//selDay.selectedIndex = dt.getDate() - 1;
}
</script>
</head>
<body>
<center>
<select id="tYEAR" size="1" onChange="createSelect()"> </select>
<select id="tMON" size="1" onChange="createSelect();"> </select>
<select id="tDAY" size="1" > </select>
<script type="text/javascript">createSelect(1); showDate(new Date(2006,03,06));</script>

</center>
</body>
</html>

lawrendc 2008-04-27
  • 打赏
  • 举报
回复
如果已获得一个DATE类型的数据u

可以这样调用函数:


function showDate(u){
var year=u.getFullYear();
var month=u.getMonth()-1;
var day=u.getDate()-1;

var $=document.getElementById;
$("tYEAR").options.selectedIndex=2008-year;
$("tMON").options.selectedIndex=month;
$("tDAY").options.selectedIndex=day;

}
garfield376 2008-04-27
  • 打赏
  • 举报
回复
THX
对selectedIndex直接进行赋值来显示你所要的值,这个我了解了,现在是这样,在JSP中已获得一个DATE类型的数据u
应该怎样对以上代码修改可以用JS外部数据u.getYear() u.getMonth() u.getDay()使下拉菜单运行后显示u这个日期呢?
我不知道该如何调用这个外部的参数

lawrendc 2008-04-27
  • 打赏
  • 举报
回复
第一个问题

你可以对selectedIndex直接进行赋值来显示你所要的值

document.getElementById('tMON').options.selectedIndex=2;

注意 这里的2是index 不是里边的值value options是从0开始计数往上增加的


第二个问题

没看懂 以Date类型存入数据库 如何获取??

你是说存入数据库后 如何从数据库获取?

那就是直接从数据库读出来就行了 用asp asp.net jsp都可以得嘛
garfield376 2008-04-27
  • 打赏
  • 举报
回复
谢谢楼上,还有两个个问题请教下:
1,如何使下拉菜单运行后显示的以选日期为某个以设定好的DATE类型记录的值,比如该记录在数据库中为2004-04-02

2,通过下拉框选择能对日期进行修改,并以DATE类型存入数据库,又该如何获取呢?
lawrendc 2008-04-27
  • 打赏
  • 举报
回复
look:

<script type="text/javascript">
function createSelect(ActionFlag) {
var selYear = document.getElementById("tYEAR");
var selMonth = document.getElementById("tMON");
var selDay = document.getElementById("tDAY");
var dt = new Date();

if(ActionFlag == 1) {
MaxYear = dt.getFullYear();
MinYear = dt.getFullYear()-40;

for(var i = MaxYear; i >= MinYear; i--) {
var op = document.createElement("OPTION");
op.value = i;
op.innerHTML = i;
selYear.appendChild(op);
}
//selYear.selectedIndex = 0;

for(var i = 1; i < 13; i++) {
var op = document.createElement("OPTION");
op.value = i;
op.innerHTML = i;
selMonth.appendChild(op);
}
//selMonth.selectedIndex = dt.getMonth();
}

var date = new Date(selYear.value, selMonth.value, 0);
var daysInMonth = date.getDate();
selDay.options.length = 0;

for(var i = 1; i <= daysInMonth ; i++) {
var op = document.createElement("OPTION");
op.value = i;
op.innerHTML = i;
selDay.appendChild(op);
}
//alert();
//selDay.selectedIndex = dt.getDate() - 1;
}
</script>

87,921

社区成员

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

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