0

これは単純なことのように思えます。これをもう少し理解したいと思います。これが私の問題です。

フォーム内にいくつかの異なるオプションがある選択があります。どのオプションが選択されているかを保持する変数が必要なので、そこから選択内容に基づいてさまざまなことを行うことができます。

これが私のhtmlです:

    <!DOCTYPE html>
    <html>
    <head>
        <title>Test</title>
        <script src="script.js" type="text/javascript"></script>
    </head>
    <body>

    <form method="get">
        <table>
            <tr>
                <p>
                    Please choose your class:
                </p>
            </tr>
            <tr>
                <td>
                    <select name= "classSelect" id="classSelect" size = "3">
                        <option value = "CS211" selected = "selected">CS-211</option>
                        <option value = "CS111">CS-111</option>
                        <option value = "CS275">CS-275</option>
                    </select>
                </td>
            </tr>
        </form
    </body>
</html>

そして、私のjavascriptファイルで、グローバル変数を宣言したいだけです:

var currentSelection = document.forms[0].classSelect.selectedIndex;

現在、 currentSelection は常に null であり、その理由はわかりません。

4

1 に答える 1

3

変数を設定しているとき、DOM はまだレンダリングされていません。DOM が ready イベントを発生させるのを待つか、ドキュメントの読み込み後にスクリプトを実行するように設定します。解決策は次のとおりです。

window.onload = function() {
  // run this code on load
};

これにより、以前の onload 関数が上書きされることに注意してください。jQuery を利用できる場合は、上書きを避けるために代わりにこれを行う必要があります。

$(window).load(function() {});

これらのバリアントも機能します。

$(function() {});
$(document).ready(function() {});
于 2013-10-14T22:11:00.713 に答える