小编典典

如何避免使用Javascript在多选框中按住ctrl键单击的需要?

javascript

我以为这是一个简单的技巧,但是我已经搜索了几个小时,找不到合适的搜索词。我希望有一个普通的多重选择框(<selectmultiple="multiple">),但我不想用户必须按住Control键才能进行多重选择。

换句话说,我希望单击鼠标左键来切换<option>光标下方的元素,而不更改其他任何元素。换句话说,我想要的东西看起来像一个组合列表框,但表现得像一组复选框。

有人可以建议用Javascript做到这一点的简单方法吗?谢谢。


阅读 419

收藏
2020-05-01

共1个答案

小编典典

基本上,您需要覆盖mousedown每个事件<option>并在selected那里切换属性。

$('option').mousedown(function(e) {
    e.preventDefault();
    $(this).prop('selected', !$(this).prop('selected'));
    return false;
});

为简单起见,我在上面给出了“选项”作为选择器。您可以对其进行微调以匹配<option>s特定<select>元素。例如:$('#mymultiselectoption')

2020-05-01