如何处理香草JS中的多个下拉选择选项
How to handle multiple dropdown select option in vanilla JS
给定以下select
节点:
<select multiple="multiple">
<option value="car">car</option>
<option value="scooter">scooter</option>
<option value="bus">bus</option>
</select>
如何使用jQuery在不按ctrl键的情况下执行多选和在不按的情况下进行多选?我想只使用vanillaJavascript来实现这一点。谢谢
这里有一种方法。。。
(function(values,sel) {
var sel = document.querySelector('select');
values = new Array(sel.length);
sel.addEventListener('click', function(e) {
values[e.target.index] = !values[e.target.index];
for(var i=0;i<values.length;++i) {
sel.options[i].selected = values[i];
}
});
})();
<select multiple="multiple">
<option value="car">car</option>
<option value="scooter">scooter</option>
<option value="bus">bus</option>
</select>
一种非脚本方式可以是checkbox
的
.check-multiple {
display: inline-block;
height: 60px;
overflow-y: scroll;
border: 1px solid gray;
}
.check-multiple input {
display: none;
}
.check-multiple label {
display: block;
}
.check-multiple span {
display: inline-block;
width: 100%;
}
.check-multiple input:checked ~ span {
background: #03f;
color: white;
}
<div class="check-multiple">
<label><input value="car" type="checkbox"><span>car</span></label>
<label><input value="scooter" type="checkbox"><span>scooter</span></label>
<label><input value="bus" type="checkbox"><span>bus</span></label>
</div>
我建议使用复选框。这些是支持选择多个选项的最佳HTML元素。
您可以在Javascript中编写自己的多选组件来镜像Chosen等流行库,但由于时间问题,我不建议使用它。
相关文章:
- 使用此选项选择父类内部的类
- 更新:仅根据单选按钮和所选选项选择特定项目
- 使用PHP通过HTML表单选项选择器过滤MYSQL结果
- ng-单击在IE中不起作用的选项选择Angularjs
- 从选项选择中删除值
- On为<选项>选择等效项
- 用户界面先前选择的选项选择更改
- 使用ng重复或ng选项和删除空白选项选择长方体角度
- 在HTML5、CSS、JavaScript中添加选项选择器,类似于移动应用程序中的选项设置
- 输入:选中,选项:选择选择器
- 根据使用angularjs从下拉菜单中选择的选项选择适当的复选框
- 如何根据 html 中的选项/选择重定向用户(单击按钮后)
- 使用ng选项选择中的ng选项进行过滤器下拉列表
- 如何设置选项选择的值
- 如何搜索长下拉选项/选择列表
- jQuery - 根据下拉选项选择列出结果
- 从选项选择单击时打开 2 个 URL
- 在 Angular JS 中为 ng 选项选择默认值
- 下拉选项选择的操作
- 通过单击单选按钮清除所有选项选择条目