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

问题描述 投票:0回答:1

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

更新如果我删除函数.mousedown,那么onchange函数按预期工作。所以问题是如何在通过ajax发回这些选择之前累积所有选择(不使用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函数允许用户从列表中选择多个选项

$("#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);
    });
jquery internet-explorer-11 html-select
1个回答
0
投票

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

enter image description here

似乎如果CSS内容样式不能在IE浏览器中的select元素中工作。

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

此外,您还可以尝试使用BootStrap多个选定插件在选择选项中添加复选框。就像this thread中的样本一样

© www.soinside.com 2019 - 2024. All rights reserved.