视频上布置的作业,老师帮忙看下问题出在哪?个人感觉逻辑上是正确的的
来源:7-9 JS对表单元素进行设置5
慕沐2169693
2019-10-12 14:34:38
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="test2.js"></script>
</head>
<body onload="address()">
<form>
<select name="yyyy" id="yyyy" ></select>年
<select name="mm" id="mm" onchange="selectYmd()"></select>月
<select name="dd" id="dd"></select>日
</form>
</body>
</html>
function address(){
/*请在此补充代码*/
var yyyy=document.getElementById("yyyy");
var mm=document.getElementById("mm");
var dd=document.getElementById("dd");
var date=new Date();
var n=parseInt(date.getFullYear());
selectAdd(yyyy,1999,n);
selectAdd(mm,1,12);
selectAdd(dd,1,30);
}
function selectAdd(obj,start,end){
/*请在此补充代码*/
for(var i=start;i<=end;i++){
obj.options.add(new Option(i,i));
}
}
function selectYmd(){
var yyyy=document.getElementById("yyyy");
var mm=document.getElementById("mm");
var dd=document.getElementById("dd");
var n=parseInt(mm.value);
if(n==1 || n==3 ||n==5 || n==7 || n==10|| n==12){
selectAdd(dd,30,31);
}else if(n==2){
var y=parseInt(yyyy.value);
if((y%4==0 && y%10==0) || y%400==0){
/*for(var i=dd.length;i>=30;i--){*/
dd.options.remove(29);
/*}*/
}else{
/*for(var i=dd.length;i>=29;i--){*/
dd.options.remove(29);
dd.options.remove(28);
/* }*/
}
}
}
1回答
好帮手慕柯南
2019-10-12
同学你好,
你的想法没有错,但是在实现上面忽略了一些问题,比如:同学在添加或者删除时,并没有考虑到目前dd里面的天数是什么。因此:建议同学可以在进行判断时,可以将dd的天数恢复为默认值,然后在进行添加,同学可以参考一下这个同学的代码:https://class.imooc.com/course/qadetail/130742
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
相似问题