そこで、サイトのすべての選択メニューをソートするコードを書きました。これは、Firefox を除く、サポートしているすべてのブラウザーで完全に機能します。
私のコードは、select 要素のオプションを受け取り、並べ替えて、返します。そこのどこかで、select 要素の selectedIndex が最後の項目に変わります。
選択されている値/defaultSelected を確認します。
for(k=0; k<options.length; k++)
{
if(options[k].defaultSelected == true)
{
sel = k;
break;
}
}
if(sel === null)
{
for(k=0; k<options.length; k++)
{
if(options[k].selected == true)
{
sel = k;
break;
}
}
}
if(sel === null)
{ options[0].selected = true; }
else
{ options[sel].selected = true; }
しかし、この関数から selectedIndex を設定することはできません。これは、選択オブジェクト全体ではなく、オプション リストだけを渡すためです。
同様の問題を調べてみましたが、私が見た他のすべてのスレッドは、キャッシュの問題であるか、autocomplete="off" を追加する必要があると言っていましたが、それらは機能しませんでした。私のコードに関係があると思いますが、selectedIndex プロパティをどこにも変更していません。
助言がありますか?私は正気を失いつつあります (そして時間切れです!)