• ベストアンサー

(javascript, Ajax)IE7.0でのselectタグのプロパティについて

Javascriptで困っています。 詳しい方、是非教えて下さい。 HTMLのselectタグの内容が変更された時に処理を行う Ajaxプログラムを書いています。 selectタグにid属性を付けて、id="selectPref"という 名称にしています。 インクルードした.jsファイルで、このselectPrefオブ ジェクトが変更された時の処理を記述したいのですが、 変数に、 selectPref.valule を代入した時点でランタイムエラーが発生します。 「"selectPref"は宣言されていません」 というメッセージ内容です。 しかし、その数行前のイベントハンドラで、selectPref オブジェクトの値に変更があった事はちゃんと検知で きています。 何が悪いのでしょうか? なお、本件は、IE7.0で起こっている現象です。 Firefox3.0.4では、正常に(期待通りに)動作してい るので、余計にIEで動かない理由が分かりません。 教えて頂けましたら幸いです。 以下、ソースから必要箇所のみ抜粋します。 ==メインのHTML== Headerセクション <script type="text/javascript" src="lib/prototype.js"></script> <script type="text/javascript" src="registration1.js"></script> BodyセクションのFormタグ内 <select size="1" id="selectPref"> <option selected value="0">▼都道府県を選択</option> </select> ==インクルードした.jsファイル== prototype.jp は、version 1.6.0.3 registration1.jpは、下記の通り。 onload = init; var pref_id; function init() { $("selectPref").onchange = prefDisp; //←この行は動いている } function prefDisp() { pref_id = selectPref.value; //←この行がエラー } ==以上==

質問者が選んだベストアンサー

  • ベストアンサー
  • LZ_1111
  • ベストアンサー率57% (4/7)
回答No.2

function prefDisp() {  // pref_id = selectPref.value; ←この行がエラー  pref_id = $('selectPref').value; // このようにする }

drrrrummer
質問者

お礼

ありがとうございました。この方法で解決できました。 #Firefoxでは$()関数を呼び出さなくても処理できてしまうのですね。

その他の回答 (1)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

例です。 Event.observe(window,'load',init,true); //windowのonloadにinitを登録 function init(){ Event.observe('selectPref','change',prefDisp,true); //id=selectPrefの要素のonchangeにprefDispを登録 } function prefDisp() { var pref_id = this.value;// this が イベント発生元を示す }

drrrrummer
質問者

お礼

有難うございました。 取り急ぎ、LZ_1111様の方法で解決できましたが、こちらも試してみます。 どうもありがとうございます。

関連するQ&A