视频上布置的作业,老师帮忙看下问题出在哪?个人感觉逻辑上是正确的的

来源: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

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

0

0 学习 · 9666 问题

查看课程