javascript - Firefox 忽略所选选项,始终显示下拉列表中的最后一项

标签 javascript jquery firefox

因此,我编写了一些代码来对我网站的所有选择菜单进行排序,它在我们支持的所有浏览器中都能完美运行……除了 Firefox。

http://jsfiddle.net/vkjAC/6/

我的代码接受一个选择元素的选项,对它们进行排序,然后返回它们。在某处,选择元素上的 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/

相关文章:

javascript - 防止 JQuery 每次为缓存的 HTML 请求检索脚本

javascript - 列出 Select 的选项在 FF 和 IE 中给出不同的结果

javascript - 使用 for 循环切换 div

javascript - "No ' Access-Control-Allow-Origin POST请求成功后抛出' header is present on the requested resource"错误

javascript - JQuery 获取连续的元素序列

jquery - AJAX 发布后的 Pyramid HTTP 重定向

javascript - 如何在 iPad 上创建基本上只是一个 URL 的自定义图标?

javascript - 如何使用 jqGrid editoptions 值的函数创建有效的字符串?

javascript - 使用javascript将文档的整个文本作为字符串获取

javascript - 将 Firefox javascript 转换为 IE javascript