首页 > 解决方案 > 如何使用 javascript 强制下拉列表表现得像列表框

问题描述

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

CMS 已经过时了。我唯一的另一个选择是添加复选框,这会使页面变得非常长,因为总共有 15 个选项可供选择。(在我的例子中,这是不同的)

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

请看这里我试图做什么:https ://jsfiddle.net/jamiedewitz/sdyn0xqz/

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

标签: javascriptdropdownspiceworks

解决方案


当然

const addMultiple = select => select.setAttribute('multiple', true);

然后,您可以使用 CSS 选择器来定位一个或多个元素

addMultiple(document.querySelector('#custom_ticket_form_field_55'))

document.querySelectorAll('select').forEach(addMultiple)

顺便说一句,id="custom_ticket_form_field_55"在您的 HTML 中的多个位置使用,所以实际上第一个变体不起作用。如果可以,请尝试使您的 ID 独一无二。

请注意,它也会破坏可访问性,因为您的标签不再指向选择。


推荐阅读