如何在 IE11 中不使用 Ctrl 键使用 jQuery 或 js 获取多个选定选项

How to to get multiple selected options with jQuery or js without using the Ctrl Key, in IE11

我需要有关 IE 11 和 jQuery 的帮助,以获取 selected 选项。 (它在 Edge 中运行良好。) 我在这里和其他地方尝试了很多链接,但都没有成功。

更新如果我删除函数.mousedown,那么onchange 函数会按预期工作。 所以接下来的问题是如何在通过 ajax.

发回之前累积所有 select 离子(不使用 Ctrl 键)

它也不显示 IE11 中的复选框,但这是另一个问题。 提前致谢。

标记:

<style>
    option:before {
    content: "☐ "
}

option:checked:before {
    content: "☑ "
}

<select class="ddlRole" id="ddlRole" style="width:810px" size="6" multiple="">
    <option value="1">Administrator</option>
    <option value="2">Manager</option>
    <option value="3">User</option>
    <option value="8">new role test 5</option>
</select>

jQuery: 此 mousedown 函数允许用户 select 列表中的多个选项

$("#ddlRole").mousedown(function (e)
    {
        e.preventDefault();

        var select = this;
        var scroll = select.scrollTop;

        e.target.selected = !e.target.selected;

        setTimeout(function () { select.scrollTop = scroll; }, 0);

        $(select).focus();

        $("#ddlRole").trigger("change");

    }).mousemove(function (e) { e.preventDefault() });


    $('#ddlRole').on('change', function ()
    {
        // Works in Edge but not IE11
        var selectedValue = $("#ddlRole").find('option:selected').val();

        alert("try  .." + selectedValue);
    });

当我们使用F12开发者工具查看Html和CSS样式时,可以看到内容不可用。

似乎 CSS 内容样式在 IE 浏览器的 select 元素中不起作用。

作为解决方法,我建议您可以将 select 元素更改为 CheckBox 列表。然后,附上复选框列表容器的mousedown函数和复选框变化事件。

此外,您也可以尝试使用BootStrap多个selected插件在select选项中添加复选框。喜欢 this thread

中的示例