【问题标题】:Change behavior of select[multiple] for single-click changes without CMD/CTRL在没有 CMD/CTRL 的情况下更改 select[multiple] 的行为以进行单击更改
【发布时间】:2014-07-13 08:15:25
【问题描述】:

我正在尝试更改 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';
   });
 }
});

但它不起作用。有什么想法吗?

【问题讨论】:

    标签: javascript jquery select multiple-select multipleselection


    【解决方案1】:

    Try this answer

    你不能依赖“点击”事件,“选择”和它的“选项”的行为有点不同,你必须使用鼠标事件来实现你的目标。

    2021 年编辑:

    解决此问题的最佳方法实际上是使用复选框 <input type="checkbox">,因为浏览器(移动设备+桌面)会为您处理本机问题,而无需您尝试使用丑陋的脚本来破解它。

    【讨论】:

      猜你喜欢
      • 2018-06-20
      • 2010-10-12
      • 2016-06-03
      • 1970-01-01
      • 2019-11-09
      • 2018-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多