js初学者,一个简单的日期下拉表单。不知道哪里出错了。。求各位帮忙。。 年和月都能出来,日期的下拉表单却出不来不知道该怎么办了,<html>
<head>
<title>用户注册</title>
</head><body >
<script src="第二次作业1.js"></script>
<form name="myform">
<p>请选择你的生日:<select name="year" id="year"><option></option></select>年
<select name="month" id="month"><option></option></select>月
<select name="date" id="date"><option></option></select>日
</p>
</form>
</body>
</html>if (document.attachEvent){
window.attachEvent("onload",init);
}
else {
window.addEventListener("load",init,false);
}var y = new Date().getFullYear();//y=2013
Date_End = [31,28,31,30,31,30,31,31,30,31,30,31];//初始化
function init(){
for(var i = 1900; i <= y; i++){
document.myform.year.options.add(new Option("" + i ,i));
}
for(var j = 1; j <= 12; j++){
document.myform.month.options.add(new Option(""+j,j));
}
}//判断是否为闰年
function isleapyear(y){
return ( (y% 4) == 0 );
}//设置日期
function init_date(){
var k = document.myform.month.options[document.myform.month.selectedIndex].value;
var kk = Date_End[d-1];
if(isleapyear(document.myform.year.options[document.myform.year.selectedIndex].value) && d == 2){
kk ++ ;
}
for(var i = 1; i <= kk; i++) {
document.myform.date.options.add(new Option("" + i , i));
}}
html
<head>
<title>用户注册</title>
</head><body >
<script src="第二次作业1.js"></script>
<form name="myform">
<p>请选择你的生日:<select name="year" id="year"><option></option></select>年
<select name="month" id="month"><option></option></select>月
<select name="date" id="date"><option></option></select>日
</p>
</form>
</body>
</html>if (document.attachEvent){
window.attachEvent("onload",init);
}
else {
window.addEventListener("load",init,false);
}var y = new Date().getFullYear();//y=2013
Date_End = [31,28,31,30,31,30,31,31,30,31,30,31];//初始化
function init(){
for(var i = 1900; i <= y; i++){
document.myform.year.options.add(new Option("" + i ,i));
}
for(var j = 1; j <= 12; j++){
document.myform.month.options.add(new Option(""+j,j));
}
}//判断是否为闰年
function isleapyear(y){
return ( (y% 4) == 0 );
}//设置日期
function init_date(){
var k = document.myform.month.options[document.myform.month.selectedIndex].value;
var kk = Date_End[d-1];
if(isleapyear(document.myform.year.options[document.myform.year.selectedIndex].value) && d == 2){
kk ++ ;
}
for(var i = 1; i <= kk; i++) {
document.myform.date.options.add(new Option("" + i , i));
}}
html
解决方案 »
- Jquery取得Action中输出的内容时出现乱码,怎么解决?
- javascript 传参时把0101010这样的字符串给转换了数字型吗?
- 求一个JavaScript截取字符串方法
- 关于setInterval 和 clearInterval 的重复问题
- 请教:C#程序中执行confirm语句的问题
- 一个老问题,现在还是要问问这里的达人,哭求效率最高的处理代码!!!
- js获取php动态生成的id
- 100分求解innerHTML无法更改内容的问题,请大家帮帮忙,急!!!
- 这都是怎么回事啊?(散分评理)
- js计算两个日期相差的天数达到30天转换成自然周达到1年转换自然月
- js跨域问题怎么解决?
- div布局
for(var i = 1900; i <= y; i++){
document.myform.year.options.add(new Option("" + i ,i));
}
for(var j = 1; j <= 12; j++){
document.myform.month.options.add(new Option(""+j,j));
}
var monthSelect = document.getElementById('month');
if (document.attachEvent){
window.attachEvent("onchange",init_date);
}else {
window.addEventListener("change",init_date,false);
}
}inin_date里面还得判断年是否有值哦。建议把空值都去掉,HTML代码里的<option></option>都去掉。
啊。。错了。。function init(){
for(var i = 1900; i <= y; i++){
document.myform.year.options.add(new Option("" + i ,i));
}
for(var j = 1; j <= 12; j++){
document.myform.month.options.add(new Option(""+j,j));
}
var monthSelect = document.getElementById('month');
if (monthSelect.attachEvent){
monthSelect.attachEvent("onchange",init_date);
}else {
monthSelect.addEventListener("change",init_date,false);
}
}
原理就是JS是事件驱动,不管你做啥,都要有事件来触发。年跟月的,你是window的onload事件触发了加进去的日的必须得根据年跟月的改变来加进去。啊明白?