因此,我编写了一些代码来对我网站的所有选择菜单进行排序,它在我们支持的所有浏览器中都能完美运行……除了 Firefox。
我的代码接受一个选择元素的选项,对它们进行排序,然后返回它们。在某处,选择元素上的 selectedIndex 更改为最后一项。
我检查选择/默认选择的值:
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 属性。
有什么建议吗?我快疯了(而且时间不多了!)
最佳答案
我以前遇到过。它与选项被删除然后再次添加的事实有关。您必须在排序后重新选择值。例如:
var ops = $('#mass').find('option');
$('#mass').prepend(sortDropDown(ops)).val($("#mass > option[selected]").val());
关于javascript - Firefox 忽略所选选项,始终显示下拉列表中的最后一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13940946/