Javascript函数没有触发 - 正文onload

时间:2012-08-22 07:15:01

标签: javascript drop-down-menu onchange onload

好的,所以我有一个包含以下内容的页面,该函数会创建一个填充了q15信息的下拉列表:

当用户从下拉列表q14中选择一个选项时,会触发以下代码:

onchange="configureDropDownLists(this,'q15')"

使用onload选项加载页面时调用相同的函数:

<body onload="configureDropDownLists('q14','q15');check();">

这是使用的两个功能:

function configureDropDownLists(q14,q15) {

        if (langu.languag=='English'){
            var not = new Array('');
            var australia = new Array('Perth','Brisbane','Sydney (Frenchs Forrest)','Sydney (Auburn)','Melbourne','Adelaide','Auckland');
            }

        switch (q14.value) {
            case '':
                document.getElementById(q15).options.length = 0;
                for (i = 0; i < not.length; i++) {
                    createOption(document.getElementById(q15), not[i], not[i]);
                }
                break;
            case '1':
                document.getElementById(q15).options.length = 0;
                for (i = 0; i < australia.length; i++) {
                    createOption(document.getElementById(q15), australia[i], [i+1]);
                }
                break;

        }

    }

    function createOption(ddl, text, value) {
        var opt = document.createElement('option');
        opt.value = value;
        opt.text = text;

        ddl.options.add(opt);
    }

最后,这个混乱的代码位于页面的header部分:

<script type="text/javascript">

window.results = ["<?php echo implode ('","', $results); ?>"];

</script>
<script type="text/javascript">
function selected(){
    var res = 'test';
    document.getElementById("test").value = res;
    alert(res);
}
</script>
<script type="text/javascript">
    var langu = {
        languag : '<?php echo $lang; ?>'
     }
    </script>
<script src="main.js" type="text/javascript"></script>
<script src="javascripts/scriptaculous.shrunk.js" type="text/javascript" charset="ISO-8859-1"></script>
<script src="javascripts/page2_validation.js" type="text/javascript"> </script>

当用户选择q14时,使用onchange调用正确触发代码。此外,在q14上有PHP代码,如果用户之前访问过该页面,则会自动选择一个选项 - 在这个实例中,我希望该函数在页面加载时运行并创建q15,因此我尝试使用{{1但是,我根本无法解雇它。

欢迎任何想法和建议! 小时。

2 个答案:

答案 0 :(得分:1)

“this”指的是select,因此你需要传递一个选择对象

这样做而不是内联

window.onload=function() {
  configureDropDownLists(document.getElementById('q14'),'q15');
  check();
}

答案 1 :(得分:0)

当您打算传递元素时,您已将字符串作为q14传递。

话虽如此,如果你给我们一个jsfiddle.net工作区来修改,这将更容易调试。