0

このスレッドでは、JavaScript を使用してドロップダウン ボックスから選択した値を取得する方法について説明しています。そのスレッドの指示に従おうとしてきましたが、機能させることができませんでした。

これは、私がやろうとしていることの最小限の(機能しない)例です。コードはドロップダウン ボックスから 2 番目のオプションの値を出力するはずですが、Chrome の JavaScript コンソールのUncaught TypeError: Cannot read property 'options' of null11 行目に次のエラーが表示されます (つまり、2 番目の変数を定義すると)。

<html>
  <body>
    <select name='a_drop_down_box'>
        <option value='1'>One</option>
        <option value='2' selected='selected'>Two</option>
        <option value='3'>Three</option>
    </select>
    <p id='message'></p>
    <script type="text/javascript">
        var test = document.getElementById("a_drop_down_box");
        var testValue = test.options[test.selectedIndex].value;
        document.getElementById('message').innerHTML=testValue;
    </script>
  </body>
</html>
4

4 に答える 4

3
document.getElementById("a_drop_down_box");

選択項目の ID を定義していないことに気付きましたか?

このname属性は、フォームを使用して送信されるリクエストのフォーム要素を識別するために使用されます。id を使用して dom から取得する必要があります。

または、選択がフォーム内にある場合は、これを使用できます。

document.getElementById("myForm").elements["a_drop_down_box"];
于 2012-08-07T11:18:09.783 に答える
1

属性を与える<select>のを忘れました。id

<html>
  <body>
    <select id='a_drop_down_box' name='a_drop_down_box'>
        <option value='1'>One</option>
        <option value='2' selected='selected'>Two</option>
        <option value='3'>Three</option>
    </select>
    <p id='message'></p>
    <script type="text/javascript">
        var test = document.getElementById("a_drop_down_box");
        var testValue = test.options[test.selectedIndex].value;
        document.getElementById('message').innerHTML=testValue;
    </script>
  </body>
</html>
于 2012-08-07T11:17:51.377 に答える
1

ドロップダウンのname属性は「a_drop_down_box」です - これがそのid.

「...of undefined」エラーが発生するときはいつでも、作業していると思われるオブジェクト (またはあなたの場合は要素) が見つからなかったことを意味します。したがって、エラーが発生する理由を考える前に、常にこれを確認してください。あなたの場合、次のことができます:

alert(test); //undefined - no element found with that ID
于 2012-08-07T11:17:52.837 に答える
1

select タグに id を追加するのを忘れました

var e = document.getElementById("a_drop_down_box");
var strUser = e.options[e.selectedIndex].value;

2 を返します。必要な場合は Two、次のようにします。

var e = document.getElementById("a_drop_down_box");
var strUser = e.options[e.selectedIndex].text;

これは簡単な例です http://jsfiddle.net/VCerV/3/

于 2012-08-07T11:31:34.663 に答える