0

好的,所以我有一个包含以下内容的页面,该函数会创建一个下拉菜单,其中包含 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>

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

欢迎任何想法和建议,请!H。

4

2 回答 2

1

“this”指的是选择,所以你需要传递一个选择对象

这样做而不是内联

window.onload=function() {
  configureDropDownLists(document.getElementById('q14'),'q15');
  check();
}
于 2012-08-22T07:18:04.597 回答
0

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

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

于 2012-08-22T07:19:30.040 回答