javascript - 如何使用 javascript 强制下拉列表表现得像列表框
问题描述
我需要向multiple
a 添加属性select list
,但不幸的是,下拉列表无法通过 HTML 进行编辑,因为它是我正在使用的 CMS(Spiceworks 用户门户)的拖放功能。
CMS 已经过时了。我唯一的另一个选择是添加复选框,这会使页面变得非常长,因为总共有 15 个选项可供选择。(在我的例子中,这是不同的)
CMS 中没有列表框选项,这就是为什么我需要使用 javascript 来强制下拉菜单像列表框一样工作。
请看这里我试图做什么:https ://jsfiddle.net/jamiedewitz/sdyn0xqz/
有没有办法强制 javascript 将multiple
属性添加到下拉列表中,或者这只是一厢情愿?
解决方案
当然
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 独一无二。
请注意,它也会破坏可访问性,因为您的标签不再指向选择。
推荐阅读
- python - 使用python将简单矩阵转换为关联矩阵
- swift - Xcode 中 SwiftUI 中的分段 11 非零退出代码错误
- xml - 如何解决此项目构建错误:不可解析的 POM 错误?
- javascript - 很难处理由“导入”引起的错误
- django - localhost:8000 和 http://127.0.0.1:8000 有什么区别?
- javascript - 如何将一个数字映射到 1,这样 number/2 === 0.5 等等?
- javascript - 在 Node.js/Express 中等待后端数据库更新后如何更新前端?
- mysql - mySql - 在第二个表中搜索没有引用的行
- azure-devops - 在 Azure DevOps 门户中,如何查询今天已修改完成工作的任务列表
- php - (PHP + MySQL)如何显示灰色禁用的字段在使用只读时仍然可以提交数据