在没有CMD/CTRL的情况下,更改单击更改时选择[多个]的行为
Change behavior of select[multiple] for single-click changes without CMD/CTRL
我正在尝试改变a的默认行为,以便在其选项上单击一下即可改变这些选项的选定状态。
换句话说,我想删除按住shift/ctrl进行多次选择的不直观要求。
我正在尝试使用jQuery:
jQuery('select[multiple] option').each(function() {
var $this = jQuery(this);
if ($this.is(':selected')) {
$this.click(function(e) {
e.preventDefault();
$this.selected = 'false';
});
} else {
$this.click(function(e) {
e.preventDefault();
$this.selected = 'true';
});
}
});
但它不起作用。什么好主意吗?
试试这个答案
你不能依赖"click"事件,则"select"的行为。它的"选项"有点不同,你必须使用鼠标事件来实现你的目标。
2021年编辑:
处理这个问题的最好方法实际上是使用复选框<input type="checkbox">
,因为浏览器(移动+桌面)会原生地为你处理这个问题,而不需要你试图用一个丑陋的脚本来破解它。
相关文章:
- 从手机中选择多个图像'使用phonegap的多媒体资料
- 如何选择多个输入字段并删除所需的属性
- 选择多个实例中的第一个
- AngularJS中没有选择多个单选按钮
- 在JS的下拉列表中选择多个输入参数
- 如何在一个onclick按钮上使用一个javascript函数选择多个文本字段
- 从下拉列表中选择多个值并调用javaScript函数
- 在ajax中选择多个var
- AngularJS和UI-选择多个数据
- 选择多个
- 在 Javascript 或 D3 中选择多个属性
- jquery选择多个并显示到特定容器
- 如何在Javascript中选择多个类而不是id
- 动态添加选项以选择多个JQuery插件
- 如何通过javascript中的按钮点击来选择和取消选择多个复选框
- 无法提交带有<选择多个必填项>在Internet Explorer中
- 如何选择多个元素的siblings()
- jquery:如何循环选择多个项目
- 选择多个复选框并将值分配给数组 - HTML/Javascript
- 使用 JsonWireProtocol 选择多个