JavaScriptを使用してコンボボックスを連動させようとしています。


JavaScriptは学び始めたばかりのため、jQueryのライブラリを使うなどより理解できる程度のものから動かして理解していきたいと思い、下記URLのサンプルを試しています。
(並行していろいろな方法も試しています)

http://d.hatena.ne.jp/Mars/20071109

ですが、そのまま使用すると、ConnectedSelect.jsの19行目
obj.onchange = function(){ConnectedSelectEnabledSelect(this)};
で、「プロパティ'onchange'の値を設定できません:オブジェクトはNullまたは未定義です。」というエラーがでてしまいます。

とりあえず動くようにしたいのですが、どのように修正したらよいか教えてください。
宜しくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/02/12 19:41:26
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149

ポイント100pt

コードが動かないといったような場合は、コメント欄などにコードを書いて、
動作テストに利用しているOSやブラウザのバージョンも明記しておいたほうが良いでしょう。

さて、こちらでコード書いてみましたので確認してみてください。
WindowsXPでfirefox18とIE8で最新版にアップデート済みのもので動作確認してます。

<html>
<head>
    <script type="text/javascript" src="ConnectedSelect.js"></script>
</head>
<body>
    <select id="SEL1">
        <option value="XXX">XXX</option>
        <option value="YYY">YYY</option>
    </select>
    <select id="SEL2">
      <option value="">---</option>
      <optgroup label="XXX">
        <option value="x1">x1</option>
        <option value="x2">x2</option>
      </optgroup>
      <optgroup label="YYY">
        <option value="y1">y1</option>
        <option value="y2">y2</option>
      </optgroup>
    </select>
    <script type="text/javascript">
        ConnectedSelect(['SEL1','SEL2','SEL3']);
    </script>
</body>
</html>
id:kon39392

ありがとうございます。

なるほど、コードはコメント欄に書けば文字制限などに悩まされることなく済みますね。今後そうします。

ちなみに自分の間違いはConnectedSelect処理を上のほうに書いてしまっていました。お恥ずかしい限りです。

ありがとうございました。

2013/02/12 19:40:38
  • id:taknt
    サンプルのままで 修正しないで動作しましたでしょうか?
    まずは それで試してちゃんと動いてから修正すべきです。

    その後、修正してエラーになった場合、その修正した箇所が問題となりますからね。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません