如何使用javascript强制下拉列表的行为类似于列表框

如何使用javascript强制下拉列表的行为类似于列表框,javascript,dropdown,spiceworks,Javascript,Dropdown,Spiceworks,我需要将multiple属性添加到选择列表,但不幸的是,下拉列表无法通过HTML进行编辑,因为它是我正在使用的CMS(Spiceworks用户门户)的拖放功能 CMS已经相当过时;我唯一的其他选择是添加复选框,这将使页面非常长,因为总共有15个选项可供选择。(在我的例子中,这是不同的) CMS中没有listbox选项,这就是为什么我需要使用javascript强制下拉菜单像listbox一样工作 请看这里我试着做了什么: 有没有办法强迫javascript将multiple属性添加到下拉列表中,

我需要将
multiple
属性添加到
选择列表
,但不幸的是,下拉列表无法通过HTML进行编辑,因为它是我正在使用的CMS(Spiceworks用户门户)的拖放功能

CMS已经相当过时;我唯一的其他选择是添加复选框,这将使页面非常长,因为总共有15个选项可供选择。(在我的例子中,这是不同的)

CMS中没有listbox选项,这就是为什么我需要使用javascript强制下拉菜单像listbox一样工作

请看这里我试着做了什么:

有没有办法强迫javascript将
multiple
属性添加到下拉列表中,或者这只是一厢情愿的想法

const addMultiple=select=>select.setAttribute('multiple',true);
然后可以使用CSS选择器以一个或多个元素为目标

addMultiple(document.querySelector(“#自定义_票证_表单_字段_55”))
document.querySelectorAll('select').forEach(addMultiple)
顺便说一下,
id=“custom\u ticket\u form\u field\u 55”
在HTML中的多个位置使用,因此实际上第一个变体不起作用。如果可以,请尝试使您的ID唯一


请注意,它还破坏了可访问性,因为您的标签不再指向“选择”按钮。

噢,说得对。我甚至没有注意到该id也是选择列表所在的li上的id。我真的希望我能更新ID,但我甚至没有访问权限。我使用的表单生成器可能是我使用过的最过时的东西。非常感谢您的帮助,这非常有效!这使我认为您的CMS不会期望多个值。我希望你能让它在服务器端工作。不幸的是,我也是。我会再给它一个小时,如果没有,我会求助于使用可怕的复选框。再次感谢!我能够让代码正常工作!这是我正在使用的,它也不会影响页面上的任何其他选择列表!非常感谢你的帮助
const addMultiple=select=>select.setAttribute('multiple',true);addMultiple(document.querySelector('select#自定义(票证)表单(字段)55')不错!可能会在许多浏览器中测试它,因为如果它不是标准的,它们可能会使用不同的启发式方法来解决查询