0

OK、次のようなページがあります。この関数は、q15 として情報が入力されたドロップダウンを作成します。

以下のコードは、ユーザーがドロップダウン q14 からオプションを選択すると起動します。

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

onloadオプションを使用してページが読み込まれると、同じ関数が呼び出されます。

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

これらは、使用される 2 つの関数です。

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

「これ」は選択を参照しているため、選択オブジェクトを渡す必要があります

インラインの代わりにこれを行う

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 に答える