0

为什么这段代码不起作用?我试图select.onchangewindow.onload代码中为事件添加一个监听器。

<script type="text/javascript" LANGUAGE="javascript">
    console.log("js working");
    window.onload = function(){
        console.log("window.onload working");
        select = document.getElementsByName("dbname")[0];
        console.log(select);
        select.onchange = function() {
            console.log("select.onchange working");
            console.log(select.value);
            var date = new Date();
            date.setTime(date.getTime() + (3*24*60*60*1000)); //3 days
            console.log(date);
            var expires = "; expires = " + date.toGMTString();
            console.log(expires);
            document.cookie = "dbselectedparam="+select.value+expires + "; path = /";
            console.log(document.cookie);
        }
    }
</script>
4

1 回答 1

0

我重写了代码以便不使用匿名函数,并且由于某种原因这有效。感谢Algef Almocera发表评论。

<script type="text/javascript" LANGUAGE="javascript">
    console.log("js working");
    function myFunction(){
        console.log("select.onchange working");
        select = document.getElementsByName("dbname")[0];
        console.log(select);
        console.log(select.value);
        var date = new Date();
        date.setTime(date.getTime()+(3*24*60*60*1000)); //3 days
        console.log(date);
        var expires = "; expires="+date.toGMTString();
        console.log(expires);
        document.cookie = "dbselectedparam="+select.value+expires+"; path=/";
        console.log(document.cookie);
    }
    window.onload = function(){
        console.log("window.onload working");
        select = document.getElementsByName("dbname")[0];
        console.log(select);
        console.log(select.value);
        select.onchange = myFunction;
    }
</script>
于 2020-06-11T08:54:37.050 回答