是否可以禁用选择2的键输入开启(v 4.0.3)

问题描述 投票:1回答:2

是否可以禁用选择2(v 4.0.3)的键输入。我找到了一个可以用“openOnEnter:false”选项完成的地方,但它对我不起作用。

jquery-select2
2个回答
0
投票

很不幸的是,不行。至少在版本4.0.3时。 它是硬编码的:

this.on('keypress', function (evt) {
  var key = evt.which;

  if (self.isOpen()) {
    // skipped
  } else {
    if (key === KEYS.ENTER || key === KEYS.SPACE ||
        (key === KEYS.DOWN && evt.altKey)) {
      self.open();

      evt.preventDefault();
    }
  }
});

0
投票

在Enter键按下打开下拉列表的行为是硬编码的(如@Shrike所说)并且没有可用于禁用它的选项(openOnEnter在v3中使用,但在v4中被删除)。

我找到了以下(脏)解决方案,适用于Select2 v4和单选,:

$(document).on('keydown', '.select2-selection', function (evt) {
    if (evt.which === 13) {
        $("#mySelect").select2('close');
    }
});

我抓住keydown事件并调用select2 close方法立即关闭下拉列表。

在Chrome,Mozilla,Safari中测试过。

小提琴:http://jsfiddle.net/j9t6sv8d/

© www.soinside.com 2019 - 2024. All rights reserved.