2

select 要素でクリック可能なオプションの最大数に制限があるようです。

3200 以上のオプションを持つ select 要素がある場合。3125 から N までのアイテムは、クリックされたときに変更イベントを発生しません。ただし、項目はキーボードで選択できます。

これがバグなのか IE8 の機能なのか、何か考えはありますか? IE6、IE7、FF、chromeではそのような問題はありません。

以下に例を示します。

<html>
  <head>
    <title>Large select</title>
  <script>
  function loadData()
  {
    var s=document.getElementById('s');
    for(i=0;i<3500;i++)
      s.options[i]=new Option(i);
  }
  </script>
</head>
<body onload="loadData()">
<select id="s" multiple="multiple" size="20" onchange="alert('change')"></select>
</body>
</html>

更新: ie8 ベータ版 (8.0.7000.0) でこれを試していました。ie8 final で完全に動作するようです

4

2 に答える 2

5

...ではそのような問題はありません。

問題?!あなたが作成している獣を怖がっているSOユーザーは私だけですか?

単なる好奇心ですが、一体なぜこれほど多くの選択肢があるのでしょうか。

編集:誤解しないでください。物事の上限を学ぶのは楽しいことです。<options>しかし、これが IE8 final で機能するようになったのを見てきました。次の Web サイトでは、使用するすべてのサイトで少なくとも 6000<select>を使用する予定です。

ロックオン!

于 2009-05-26T12:13:35.360 に答える
2

これは、決してヒットしてはならない制限の 1 つです。データベース テーブルの列の最大数と同様です。限界は何かと尋ねても、設計に重大な欠陥があることを示しています。

于 2009-05-26T12:18:19.030 に答える