Optionの選択について

Test


0   名前: れびん : 2007/05/02(水) 17:19  ID:FNaOhIHr sub-L7
1ページに複数のコンボボックスがあり、あるひとつのコンボボックス(@)の値を
変更したときに、他のコンボボックス(A)の値も同じものを選択する仕組みを
下記のようなJavaScriptのコードで実現しました。
(下記AAはAのコンボボックスの名前)

var select_cd = "00" //@で選択した項目のvalue値
var len = document.all.item("AA").item(0).length;
for(j=0; j<len; j++){
     list_CD = document.all.item("AA").item(0).options[j].value;
     if(list_CD == select_cd){
          document.all.item("AA").item(0).selectedIndex = j;
          break;
     }
}

しかし、Aのコンボボックスの選択項目が1000以上ある為、処理に時間がかかってしまいます。
(Aのようなコンボボックスが画面に100個程度ある場合、15秒かかっています)

できれば、value値から直接indexを取得する、または、indexを使わずに選択するなどの方法を使い、
ループをまわさずに実現させたいと思っているのですが、可能でしょうか。
以上、よろしくお願いします。

1   名前: 匿名 : 2007/05/02(水) 17:19  ID:.Cbq//5X sub-Ds
>(Aのようなコンボボックスが画面に100個程度ある
どうみても異常なサイトですね。
JavaScriptというよりは、HTMLとかウェブデザインの問題では?


>ループをまわさずに実現させたいと
ループ以外にはないでしょう。
組み合わせがパターン化できるならリテラルでテーブルにするとか。

2   名前: 匿名 : 2007/05/02(水) 17:19  ID:uR8UqwGx sub-Cz
IE 以外なら XPath を使えば良いし、IE も視野に入れるなら name の付け方を工夫すれば良いかと。

・@とAというのは、ひょっとして丸付き数字ですか。文字化けするので機種依存文字の使用は止めてくれーな。
・今どき IE 専用の document.all を使用する理由がありますか。
・変数が宣言されていたりされていなかったりには、理由がありますか。

3   名前: れびん : 2007/05/02(水) 17:19  ID:FNaOhIHr sub-L7
ご回答、ありがとうございました。

社内イントラ用の既存のシステムの修正で対象ブラウザがIEのみ
であった為、あまり気にしていませんでした。すみませんでした。
また、機種依存の文字を使用してしまったことについてもお詫びします。

パターン化できないので、やはりループでやろうと思います。
ありがとうございました。

一覧へ戻る