• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数セレクトメニュー連動の追加・・・その後)

複数セレクトメニュー連動の追加

このQ&Aのポイント
  • 2008年のQ&Aを参考に、プルダウンメニューを作成中
  • 100件以上のプルダウンを選択し他後、別の親選択肢を選ぶと、子のデーターに、先程の100件以上の選択肢が残って表示される
  • javascript初心者なので、ご教授いただけると助かる

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

大変失礼いたしました。 なんかおかしなことやってますね。 optionをクリアするところが変でした。すみません。 function set()の最初の方から、 function set(n,key){ var s=sBox[n]; var dat=[]; //for (i=0; i<s.options.length; i++) s.options[i]=null; s.options.length = 0; //←この行と入替え if (key && iData[key]){ //以下同じ とすれば、多分、大丈夫だと思います。  (大分、以前に作ったので書き方が下手かも… 汗)

r58_on_job
質問者

お礼

早速のご回答、ありがとうございます。 上記の変更をしましたところ、うまく作動しました。 ありがとうございました。 また、大変お手数ですが、長いプルダウンメ選択肢を表示させた後、その長いまま、次の選択肢が短くても、長い選択フィールドが表示されてしまう現象が出ました。選択フィールドの長さを初期化する方法を教えていただけませんでしょうか。 ご多用中、よろしくお願いします。 r58_on_job拝

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

#1、#2です。 よくわかっていませんが、クリアするのに length=0 と安直な方法をとってしまったのが原因かも… それなので、かわりに  while(s.firstChild) s.removeChild(s.firstChild); とすることで、多分うまくいくのではないかと想像しますが、いかがでしょうか? それでもダメだと、#2で書きましたように要素を新しく生成するような方法しか思いつきません。 (うまくいくのかは不明)

すると、全ての回答が全文表示されます。
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

#1です。 >その長いまま、次の選択肢が短くても、長い選択フィールドが >表示されてしまう現象が出ました う~ん。 こちらの環境(Windows、 Fx4.0、 Opera10.6、 IE6.0)では再現できないのでわからないのですが… 何らかのプロパティが残ってしまっているのでしょうかねぇ。 select要素にsizeはありますが、これは表示する時の項目数なのでプルダウン部分の長さではないですし… あるブラウザ特有のプロパティなのかも。 原因がわからないので、対処法として思いつくのは、  セレクト要素の中身(オプション)を書き換える処理をやめて、新しいセレクト要素を作成・追加し、古い要素は削除してしまうという方法くらいでしょうか。 これで、直るかどうかは不明ですが…(現象が確認できてないのでわかりません)

r58_on_job
質問者

補足

ご連絡ありがとうございます。 こちらで、IE9、およびCrome 12で作動確認しましたところ、上記の現象は出ませんでした。ただし、職場の IE8だと上のような現象が出てしまうのでした。 何とか対処しようと思います。 大変お手数をおかけしました。 ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A

専門家に質問してみよう