我需要帮助,请使用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);
});
当我们使用F12开发人员工具检查Html和CSS样式时,我们可以看到内容不可用。
似乎如果CSS内容样式不能在IE浏览器中的select元素中工作。
作为一种解决方法,我建议你可以将select元素更改为CheckBox列表。然后,附加复选框列表容器mousedown函数和复选框更改事件。
此外,您还可以尝试使用BootStrap多个选定插件在选择选项中添加复选框。就像this thread中的样本一样